{"_format":"hh3-sol-build-info-output-1","id":"solc-0_8_33-4b238b4fe0cedd7be5f2b0aa5999a5f7433e9c71","output":{"contracts":{"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol":{"IDataService":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"}],"name":"ProvisionPendingParametersAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":true,"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServicePaymentCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceProviderRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServiceProviderSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStopped","type":"event"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"acceptProvisionPendingParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDelegationRatio","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProvisionTokensRange","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getThawingPeriodRange","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVerifierCutRange","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"startService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"stopService","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptProvisionPendingParameters(address,bytes)":"ce0fc0cc","collect(address,uint8,bytes)":"b15d2a2c","getDelegationRatio()":"1ebb7c30","getProvisionTokensRange()":"819ba366","getThawingPeriodRange()":"71ce020a","getVerifierCutRange()":"482468b7","register(address,bytes)":"24b8fbf6","slash(address,bytes)":"cb8347fe","startService(address,bytes)":"dedf6726","stopService(address,bytes)":"8180083b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"This interface is expected to be inherited and extended by a data service interface. It can be used to interact with it however it's advised to use the more specific parent interface.\",\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"Interface of the base {DataService} contract as defined by the Graph Horizon specification.\",\"version\":1},\"userdoc\":{\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"This interface provides a guardrail for contracts that use the Data Service framework to implement a data service on Graph Horizon. Much of the specification is intentionally loose to allow for greater flexibility when designing a data service. It's not possible to guarantee that an implementation will honor the Data Service framework guidelines so it's advised to always review the implementation code and the documentation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol\":\"IDataService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol\":{\"keccak256\":\"0x24a4b7bf75c66404683c66cb8ed2d456f80a779617eb162794db9cf17bd58f19\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://58a651ccf814c460ce3581cf24de0dcdd8f734b71b1980246608f38aca84ac09\",\"dweb:/ipfs/QmTvyZMaQWpbTYZfjrVp5ZbZMb6NTJGfadyhqNPLCaQL59\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol":{"IDataServiceFees":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"}],"name":"ProvisionPendingParametersAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":true,"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServicePaymentCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceProviderRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServiceProviderSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStopped","type":"event"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"acceptProvisionPendingParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDelegationRatio","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProvisionTokensRange","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getThawingPeriodRange","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVerifierCutRange","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numClaimsToRelease","type":"uint256"}],"name":"releaseStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"startService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"stopService","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptProvisionPendingParameters(address,bytes)":"ce0fc0cc","collect(address,uint8,bytes)":"b15d2a2c","getDelegationRatio()":"1ebb7c30","getProvisionTokensRange()":"819ba366","getThawingPeriodRange()":"71ce020a","getVerifierCutRange()":"482468b7","register(address,bytes)":"24b8fbf6","releaseStake(uint256)":"45f54485","slash(address,bytes)":"cb8347fe","startService(address,bytes)":"dedf6726","stopService(address,bytes)":"8180083b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"Note that this implementation uses the entire provisioned stake as collateral for the payment. It can be used to provide economic security for the payments collected as long as the provisioned stake is not being used for other purposes.\",\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"releaseStake(uint256)\":{\"details\":\"This function is only meant to be called if the service provider has enough stake claims that releasing them all at once would exceed the block gas limit.This function can be overriden and/or disabled.Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\",\"params\":{\"numClaimsToRelease\":\"Amount of stake claims to process. If 0, all stake claims are processed.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"Interface for the {DataServiceFees} contract.\",\"version\":1},\"userdoc\":{\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"releaseStake(uint256)\":{\"notice\":\"Releases expired stake claims for the caller.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"Extension for the {IDataService} contract to handle payment collateralization using a Horizon provision. It's designed to be used with the Data Service framework: - When a service provider collects payment with {IDataService.collect} the data service should lock   stake to back the payment using {_lockStake}. - Every time there is a payment collection with {IDataService.collect}, the data service should   attempt to release any expired stake claims by calling {_releaseStake}. - Stake claims can also be manually released by calling {releaseStake} directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol\":\"IDataServiceFees\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol\":{\"keccak256\":\"0x24a4b7bf75c66404683c66cb8ed2d456f80a779617eb162794db9cf17bd58f19\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://58a651ccf814c460ce3581cf24de0dcdd8f734b71b1980246608f38aca84ac09\",\"dweb:/ipfs/QmTvyZMaQWpbTYZfjrVp5ZbZMb6NTJGfadyhqNPLCaQL59\"]},\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol\":{\"keccak256\":\"0x9416312dc83a2473adf6d05f4ab4eca44f7e69df3617205b20e4eb2c531750bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d040ed6e1a3b7492e24ef33f296fc4d111817d097bf826b5a86887eade91bf7d\",\"dweb:/ipfs/QmUE7NcxHdeSYMuVFiSDNqzExrSjyBX8mWXEnPV5RiJ3BR\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol":{"IAuthorizable":{"abi":[{"inputs":[],"name":"AuthorizableInvalidSignerProof","type":"error"},{"inputs":[{"internalType":"uint256","name":"proofDeadline","type":"uint256"},{"internalType":"uint256","name":"currentTimestamp","type":"uint256"}],"name":"AuthorizableInvalidSignerProofDeadline","type":"error"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"bool","name":"revoked","type":"bool"}],"name":"AuthorizableSignerAlreadyAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"AuthorizableSignerNotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"AuthorizableSignerNotThawing","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"AuthorizableSignerStillThawing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"SignerAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"SignerRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"SignerThawCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"SignerThawing","type":"event"},{"inputs":[],"name":"REVOKE_AUTHORIZATION_THAWING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"proofDeadline","type":"uint256"},{"internalType":"bytes","name":"proof","type":"bytes"}],"name":"authorizeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"cancelThawSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"getThawEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"revokeAuthorizedSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"thawSigner","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"REVOKE_AUTHORIZATION_THAWING_PERIOD()":"9b952881","authorizeSigner(address,uint256,bytes)":"fee9f01f","cancelThawSigner(address)":"015cdd80","getThawEnd(address)":"bea5d2ab","isAuthorized(address,address)":"65e4ad9e","revokeAuthorizedSigner(address)":"39aa7416","thawSigner(address)":"1354f019"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AuthorizableInvalidSignerProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"}],\"name\":\"AuthorizableInvalidSignerProofDeadline\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revoked\",\"type\":\"bool\"}],\"name\":\"AuthorizableSignerAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"AuthorizableSignerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"AuthorizableSignerNotThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"AuthorizableSignerStillThawing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerAuthorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawing\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REVOKE_AUTHORIZATION_THAWING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"authorizeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"cancelThawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"getThawEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"revokeAuthorizedSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"thawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"AuthorizableInvalidSignerProofDeadline(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"proofDeadline\":\"The deadline for the proof provided\"}}],\"AuthorizableSignerAlreadyAuthorized(address,address,bool)\":[{\"params\":{\"authorizer\":\"The address of the authorizer\",\"revoked\":\"The revoked status of the authorization\",\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerNotAuthorized(address,address)\":[{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerNotThawing(address)\":[{\"params\":{\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerStillThawing(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}]},\"events\":{\"SignerAuthorized(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"}},\"SignerRevoked(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer revoking the signer\",\"signer\":\"The address of the signer\"}},\"SignerThawCanceled(address,address,uint256)\":{\"params\":{\"authorizer\":\"The address of the authorizer cancelling the thawing\",\"signer\":\"The address of the signer\",\"thawEndTimestamp\":\"The timestamp at which the thawing period was scheduled to end\"}},\"SignerThawing(address,address,uint256)\":{\"params\":{\"authorizer\":\"The address of the authorizer thawing the signer\",\"signer\":\"The address of the signer to thaw\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}},\"kind\":\"dev\",\"methods\":{\"REVOKE_AUTHORIZATION_THAWING_PERIOD()\":{\"returns\":{\"_0\":\"The period in seconds\"}},\"authorizeSigner(address,uint256,bytes)\":{\"details\":\"Requirements: - `signer` must not be already authorized - `proofDeadline` must be greater than the current timestamp - `proof` must be a valid signature from the signer being authorized Emits a {SignerAuthorized} event\",\"params\":{\"proof\":\"The proof provided by the signer to be authorized by the authorizer consists of (chain id, verifying contract address, domain, proof deadline, authorizer address)\",\"proofDeadline\":\"The deadline for the proof provided by the signer\",\"signer\":\"The address of the signer\"}},\"cancelThawSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawing and authorized by the function caller Emits a {SignerThawCanceled} event\",\"params\":{\"signer\":\"The address of the signer to cancel thawing\"}},\"getThawEnd(address)\":{\"params\":{\"signer\":\"The address of the signer\"},\"returns\":{\"_0\":\"The timestamp at which the thawing period ends\"}},\"isAuthorized(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"},\"returns\":{\"_0\":\"true if the signer is authorized by the authorizer, false otherwise\"}},\"revokeAuthorizedSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawed and authorized by the function caller Emits a {SignerRevoked} event\",\"params\":{\"signer\":\"The address of the signer\"}},\"thawSigner(address)\":{\"details\":\"Thawing a signer signals that signatures from that signer will soon be deemed invalid. Once a signer is thawed, they should be viewed as revoked regardless of their revocation status. If a signer is already thawing and this function is called, the thawing period is reset. Requirements: - `signer` must be authorized by the authorizer calling this function Emits a {SignerThawing} event\",\"params\":{\"signer\":\"The address of the signer to thaw\"}}},\"title\":\"Interface for the {Authorizable} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"AuthorizableInvalidSignerProof()\":[{\"notice\":\"Thrown when the signer proof is invalid\"}],\"AuthorizableInvalidSignerProofDeadline(uint256,uint256)\":[{\"notice\":\"Thrown when the signer proof deadline is invalid\"}],\"AuthorizableSignerAlreadyAuthorized(address,address,bool)\":[{\"notice\":\"Thrown when attempting to authorize a signer that is already authorized\"}],\"AuthorizableSignerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the signer is not authorized by the authorizer\"}],\"AuthorizableSignerNotThawing(address)\":[{\"notice\":\"Thrown when the signer is not thawing\"}],\"AuthorizableSignerStillThawing(uint256,uint256)\":[{\"notice\":\"Thrown when the signer is still thawing\"}]},\"events\":{\"SignerAuthorized(address,address)\":{\"notice\":\"Emitted when a signer is authorized to sign for a authorizer\"},\"SignerRevoked(address,address)\":{\"notice\":\"Emitted when a signer has been revoked after thawing\"},\"SignerThawCanceled(address,address,uint256)\":{\"notice\":\"Emitted when the thawing of a signer is cancelled\"},\"SignerThawing(address,address,uint256)\":{\"notice\":\"Emitted when a signer is thawed to be de-authorized\"}},\"kind\":\"user\",\"methods\":{\"REVOKE_AUTHORIZATION_THAWING_PERIOD()\":{\"notice\":\"The period after which a signer can be revoked after thawing\"},\"authorizeSigner(address,uint256,bytes)\":{\"notice\":\"Authorize a signer to sign on behalf of the authorizer\"},\"cancelThawSigner(address)\":{\"notice\":\"Stops thawing a signer.\"},\"getThawEnd(address)\":{\"notice\":\"Returns the timestamp at which the thawing period ends for a signer. Returns 0 if the signer is not thawing.\"},\"isAuthorized(address,address)\":{\"notice\":\"Returns true if the signer is authorized by the authorizer\"},\"revokeAuthorizedSigner(address)\":{\"notice\":\"Revokes a signer if thawed.\"},\"thawSigner(address)\":{\"notice\":\"Starts thawing a signer to be de-authorized\"}},\"notice\":\"Implements an authorization scheme that allows authorizers to authorize signers to sign on their behalf.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":\"IAuthorizable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol":{"IContractApprover":{"abi":[{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"isAuthorizedAgreement","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isAuthorizedAgreement(bytes32)":"8d202ecf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"}],\"name\":\"isAuthorizedAgreement\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{\"isAuthorizedAgreement(bytes32)\":{\"details\":\"Called by {RecurringCollector.acceptUnsigned} with an RCA hash or by {RecurringCollector.updateUnsigned} with an RCAU hash to verify authorization.\",\"params\":{\"agreementHash\":\"The EIP712 hash of the RCA or RCAU struct\"},\"returns\":{\"_0\":\"magic `IContractApprover.isAuthorizedAgreement.selector` if authorized\"}}},\"title\":\"Interface for contracts that can act as authorized agreement approvers\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isAuthorizedAgreement(bytes32)\":{\"notice\":\"Confirms this contract authorized the given agreement or update\"}},\"notice\":\"Enables contracts to authorize RCA agreements and updates on-chain via {RecurringCollector.acceptUnsigned} and {RecurringCollector.updateUnsigned}, replacing ECDSA signatures with a callback. Uses the magic-value pattern: return the function selector on success. The same callback is used for both accept (RCA hash) and update (RCAU hash). Hash namespaces do not collide because RCA and RCAU use different EIP712 type hashes. No per-payer authorization step is needed \\u2014 the contract's code is the authorization. The trust chain is: governance grants operator role \\u2192 operator registers (validates and pre-funds) \\u2192 isAuthorizedAgreement confirms \\u2192 RC accepts/updates.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol\":\"IContractApprover\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol\":{\"keccak256\":\"0xb3c0ae0022b8c4eef99adcdf79f313e87c4d355ed209685c76399a5fb9c767b0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5ec8b069cae7192f0ac0eef9626cc81d5da2f1272af2be87c1f6565e62621f2f\",\"dweb:/ipfs/QmXtLAdXP78Pe3vfrvscbdABDsXi4kFXhddQ7NewpU3cU3\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol":{"IGraphPayments":{"abi":[{"inputs":[{"internalType":"uint256","name":"cut","type":"uint256"}],"name":"GraphPaymentsInvalidCut","type":"error"},{"inputs":[{"internalType":"uint256","name":"protocolPaymentCut","type":"uint256"}],"name":"GraphPaymentsInvalidProtocolPaymentCut","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensProtocol","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensDataService","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensDelegationPool","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensReceiver","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiverDestination","type":"address"}],"name":"GraphPaymentCollected","type":"event"},{"inputs":[],"name":"PROTOCOL_PAYMENT_CUT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"uint256","name":"dataServiceCut","type":"uint256"},{"internalType":"address","name":"receiverDestination","type":"address"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"PROTOCOL_PAYMENT_CUT()":"1d526e50","collect(uint8,address,uint256,address,uint256,address)":"81cd11a0","initialize()":"8129fc1c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cut\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInvalidCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"protocolPaymentCut\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInvalidProtocolPaymentCut\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensProtocol\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDelegationPool\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReceiver\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"GraphPaymentCollected\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"PROTOCOL_PAYMENT_CUT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dataServiceCut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"GraphPaymentsInvalidCut(uint256)\":[{\"params\":{\"cut\":\"The cut\"}}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"params\":{\"protocolPaymentCut\":\"The protocol payment cut\"}}]},\"events\":{\"GraphPaymentCollected(uint8,address,address,address,uint256,uint256,uint256,uint256,uint256,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The type of payment as defined in {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment cut is sent.\",\"tokens\":\"The total amount of tokens being collected\",\"tokensDataService\":\"Amount of tokens for the data service\",\"tokensDelegationPool\":\"Amount of tokens for delegators\",\"tokensProtocol\":\"Amount of tokens charged as protocol tax\",\"tokensReceiver\":\"Amount of tokens for the receiver\"}}},\"kind\":\"dev\",\"methods\":{\"PROTOCOL_PAYMENT_CUT()\":{\"returns\":{\"_0\":\"The protocol payment cut in PPM\"}},\"collect(uint8,address,uint256,address,uint256,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"dataServiceCut\":\"The data service cut in PPM\",\"paymentType\":\"The type of payment as defined in {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment cut is sent.\",\"tokens\":\"The amount of tokens being collected.\"}}},\"title\":\"Interface for the {GraphPayments} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphPaymentsInvalidCut(uint256)\":[{\"notice\":\"Thrown when trying to use a cut that is not expressed in PPM\"}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"notice\":\"Thrown when the protocol payment cut is invalid\"}]},\"events\":{\"GraphPaymentCollected(uint8,address,address,address,uint256,uint256,uint256,uint256,uint256,address)\":{\"notice\":\"Emitted when a payment is collected\"}},\"kind\":\"user\",\"methods\":{\"PROTOCOL_PAYMENT_CUT()\":{\"notice\":\"Returns the protocol payment cut\"},\"collect(uint8,address,uint256,address,uint256,address)\":{\"notice\":\"Collects funds from a payer. It will pay cuts to all relevant parties and forward the rest to the receiver destination address. If the destination address is zero the funds are automatically staked to the receiver. Note that the receiver destination address can be set to the receiver address to collect funds on the receiver without re-staking. Note that the collected amount can be zero.\"},\"initialize()\":{\"notice\":\"Initialize the contract\"}},\"notice\":\"This contract is part of the Graph Horizon payments protocol. It's designed to pull funds (GRT) from the {PaymentsEscrow} and distribute them according to a set of pre established rules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":\"IGraphPayments\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol":{"IPaymentsCollector":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"PaymentCollected","type":"event"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"collect(uint8,bytes)":"7f07d283"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"It's important to note that it's the collector contract's responsibility to validate the payment request is legitimate.\",\"events\":{\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"params\":{\"collectionId\":\"The id for the collection. Can be used at the discretion of the collector to group multiple payments.\",\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The payment type collected as defined by {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens being collected\"}}},\"kind\":\"dev\",\"methods\":{\"collect(uint8,bytes)\":{\"details\":\"This function should require the caller to present some form of evidence of the payer's debt to the receiver. The collector should validate this evidence and, if valid, collect the payment. Emits a {PaymentCollected} event\",\"params\":{\"data\":\"Additional data required for the payment collection. Will vary depending on the collector implementation.\",\"paymentType\":\"The payment type to collect, as defined by {IGraphPayments}\"},\"returns\":{\"_0\":\"The amount of tokens collected\"}}},\"title\":\"Interface for a payments collector contract as defined by Graph Horizon payments protocol\",\"version\":1},\"userdoc\":{\"events\":{\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"notice\":\"Emitted when a payment is collected\"}},\"kind\":\"user\",\"methods\":{\"collect(uint8,bytes)\":{\"notice\":\"Initiate a payment collection through the payments protocol\"}},\"notice\":\"Contracts implementing this interface can be used with the payments protocol. First, a payer must approve the collector to collect payments on their behalf. Only then can payment collection be initiated using the collector contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":\"IPaymentsCollector\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol":{"IPaymentsEscrow":{"abi":[{"inputs":[{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"PaymentsEscrowInconsistentCollection","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"minBalance","type":"uint256"}],"name":"PaymentsEscrowInsufficientBalance","type":"error"},{"inputs":[],"name":"PaymentsEscrowInvalidZeroTokens","type":"error"},{"inputs":[],"name":"PaymentsEscrowIsPaused","type":"error"},{"inputs":[],"name":"PaymentsEscrowNotThawing","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"PaymentsEscrowStillThawing","type":"error"},{"inputs":[{"internalType":"uint256","name":"thawingPeriod","type":"uint256"},{"internalType":"uint256","name":"maxWaitPeriod","type":"uint256"}],"name":"PaymentsEscrowThawingPeriodTooLong","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"collector","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensThawing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"CancelThaw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"collector","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"collector","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"receiverDestination","type":"address"}],"name":"EscrowCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"collector","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"Thaw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"collector","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"MAX_WAIT_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_ESCROW_THAWING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"cancelThaw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"uint256","name":"dataServiceCut","type":"uint256"},{"internalType":"address","name":"receiverDestination","type":"address"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"thaw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collector","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"MAX_WAIT_PERIOD()":"b2168b6b","WITHDRAW_ESCROW_THAWING_PERIOD()":"7b8ae6cf","cancelThaw(address,address)":"b1d07de4","collect(uint8,address,address,uint256,address,uint256,address)":"1230fa3e","deposit(address,address,uint256)":"8340f549","depositTo(address,address,address,uint256)":"72eb521e","getBalance(address,address,address)":"d6bd603c","initialize()":"8129fc1c","thaw(address,address,uint256)":"f93f1cd0","withdraw(address,address)":"f940e385"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowInconsistentCollection\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBalance\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowIsPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowNotThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowStillThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"thawingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxWaitPeriod\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowThawingPeriodTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"CancelThaw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"EscrowCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"Thaw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_WAIT_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAW_ESCROW_THAWING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"cancelThaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dataServiceCut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiverDestination\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"thaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"PaymentsEscrowInconsistentCollection(uint256,uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The balance after the collection\",\"balanceBefore\":\"The balance before the collection\",\"tokens\":\"The amount of tokens collected\"}}],\"PaymentsEscrowInsufficientBalance(uint256,uint256)\":[{\"params\":{\"balance\":\"The current balance\",\"minBalance\":\"The minimum required balance\"}}],\"PaymentsEscrowStillThawing(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}],\"PaymentsEscrowThawingPeriodTooLong(uint256,uint256)\":[{\"params\":{\"maxWaitPeriod\":\"The maximum wait period\",\"thawingPeriod\":\"The thawing period\"}}]},\"events\":{\"CancelThaw(address,address,address,uint256,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"thawEndTimestamp\":\"The timestamp at which the thawing period was ending\",\"tokensThawing\":\"The amount of tokens that were being thawed\"}},\"Deposit(address,address,address,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens deposited\"}},\"EscrowCollected(uint8,address,address,address,uint256,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"paymentType\":\"The type of payment being collected as defined in the {IGraphPayments} interface\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment should be sent.\",\"tokens\":\"The amount of tokens collected\"}},\"Thaw(address,address,address,uint256,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\",\"tokens\":\"The amount of tokens being thawed\"}},\"Withdraw(address,address,address,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens withdrawn\"}}},\"kind\":\"dev\",\"methods\":{\"MAX_WAIT_PERIOD()\":{\"returns\":{\"_0\":\"The maximum thawing period in seconds\"}},\"WITHDRAW_ESCROW_THAWING_PERIOD()\":{\"returns\":{\"_0\":\"The thawing period in seconds\"}},\"cancelThaw(address,address)\":{\"details\":\"Requirements: - The payer must be thawing funds Emits a {CancelThaw} event.\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\"}},\"collect(uint8,address,address,uint256,address,uint256,address)\":{\"params\":{\"dataService\":\"The address of the data service\",\"dataServiceCut\":\"The data service cut in PPM that {GraphPayments} should send\",\"payer\":\"The address of the payer\",\"paymentType\":\"The type of payment being collected as defined in the {IGraphPayments} interface\",\"receiver\":\"The address of the receiver\",\"receiverDestination\":\"The address where the receiver's payment should be sent.\",\"tokens\":\"The amount of tokens to collect\"}},\"deposit(address,address,uint256)\":{\"details\":\"Emits a {Deposit} event\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to deposit\"}},\"depositTo(address,address,address,uint256)\":{\"details\":\"Emits a {Deposit} event\",\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to deposit\"}},\"getBalance(address,address,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\"},\"returns\":{\"_0\":\"The balance of the payer-collector-receiver tuple\"}},\"thaw(address,address,uint256)\":{\"details\":\"Requirements: - `tokens` must be less than or equal to the available balance Emits a {Thaw} event.\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to thaw\"}},\"withdraw(address,address)\":{\"details\":\"Requirements: - Funds must be thawed Emits a {Withdraw} event\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\"}}},\"title\":\"Interface for the {PaymentsEscrow} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"PaymentsEscrowInconsistentCollection(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when the contract balance is not consistent with the collection amount\"}],\"PaymentsEscrowInsufficientBalance(uint256,uint256)\":[{\"notice\":\"Thrown when the available balance is insufficient to perform an operation\"}],\"PaymentsEscrowInvalidZeroTokens()\":[{\"notice\":\"Thrown when operating a zero token amount is not allowed.\"}],\"PaymentsEscrowIsPaused()\":[{\"notice\":\"Thrown when a protected function is called and the contract is paused.\"}],\"PaymentsEscrowNotThawing()\":[{\"notice\":\"Thrown when a thawing is expected to be in progress but it is not\"}],\"PaymentsEscrowStillThawing(uint256,uint256)\":[{\"notice\":\"Thrown when a thawing is still in progress\"}],\"PaymentsEscrowThawingPeriodTooLong(uint256,uint256)\":[{\"notice\":\"Thrown when setting the thawing period to a value greater than the maximum\"}]},\"events\":{\"CancelThaw(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer cancels an escrow thawing\"},\"Deposit(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\"},\"EscrowCollected(uint8,address,address,address,uint256,address)\":{\"notice\":\"Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\"},\"Thaw(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\"},\"Withdraw(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\"}},\"kind\":\"user\",\"methods\":{\"MAX_WAIT_PERIOD()\":{\"notice\":\"The maximum thawing period for escrow funds withdrawal\"},\"WITHDRAW_ESCROW_THAWING_PERIOD()\":{\"notice\":\"The thawing period for escrow funds withdrawal\"},\"cancelThaw(address,address)\":{\"notice\":\"Cancels the thawing of escrow from a payer-collector-receiver's escrow account.\"},\"collect(uint8,address,address,uint256,address,uint256,address)\":{\"notice\":\"Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for distribution using the Graph Horizon Payments protocol. The function will revert if there are not enough funds in the escrow. Emits an {EscrowCollected} event\"},\"deposit(address,address,uint256)\":{\"notice\":\"Deposits funds into the escrow for a payer-collector-receiver tuple, where the payer is the transaction caller.\"},\"depositTo(address,address,address,uint256)\":{\"notice\":\"Deposits funds into the escrow for a payer-collector-receiver tuple, where the payer can be specified.\"},\"getBalance(address,address,address)\":{\"notice\":\"Get the balance of a payer-collector-receiver tuple This function will return 0 if the current balance is less than the amount of funds being thawed.\"},\"initialize()\":{\"notice\":\"Initialize the contract\"},\"thaw(address,address,uint256)\":{\"notice\":\"Thaw a specific amount of escrow from a payer-collector-receiver's escrow account. The payer is the transaction caller. Note that repeated calls to this function will overwrite the previous thawing amount and reset the thawing period.\"},\"withdraw(address,address)\":{\"notice\":\"Withdraws all thawed escrow from a payer-collector-receiver's escrow account. The payer is the transaction caller. Note that the withdrawn funds might be less than the thawed amount if there were payment collections in the meantime.\"}},\"notice\":\"This contract is part of the Graph Horizon payments protocol. It holds the funds (GRT) for payments made through the payments protocol for services provided via a Graph Horizon data service. Payers deposit funds on the escrow, signalling their ability to pay for a service, and only being able to retrieve them after a thawing period. Receivers collect funds from the escrow, provided the payer has authorized them. The payer authorization is delegated to a payment collector contract which implements the {IPaymentsCollector} interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol\":\"IPaymentsEscrow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol\":{\"keccak256\":\"0xe1e96fbd174df4b238486e55a53631febddbee58b392a5db9b7c5ad6c7048cf0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5badee627fd83df7c1823cb8ba2a92172d0c14cf320d55d06e6336efca21ebf\",\"dweb:/ipfs/QmSJL8S5hfq81zajFb3E8bhw53TsuNNK97WEpVQejMoZhv\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol":{"IRecurringCollector":{"abi":[{"inputs":[],"name":"AuthorizableInvalidSignerProof","type":"error"},{"inputs":[{"internalType":"uint256","name":"proofDeadline","type":"uint256"},{"internalType":"uint256","name":"currentTimestamp","type":"uint256"}],"name":"AuthorizableInvalidSignerProofDeadline","type":"error"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"},{"internalType":"bool","name":"revoked","type":"bool"}],"name":"AuthorizableSignerAlreadyAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"AuthorizableSignerNotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"AuthorizableSignerNotThawing","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"AuthorizableSignerStillThawing","type":"error"},{"inputs":[],"name":"RecurringCollectorAgreementAddressNotSet","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint64","name":"deadline","type":"uint64"}],"name":"RecurringCollectorAgreementDeadlineElapsed","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint64","name":"endsAt","type":"uint64"}],"name":"RecurringCollectorAgreementElapsedEndsAt","type":"error"},{"inputs":[],"name":"RecurringCollectorAgreementIdZero","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"enum IRecurringCollector.AgreementState","name":"incorrectState","type":"uint8"}],"name":"RecurringCollectorAgreementIncorrectState","type":"error"},{"inputs":[{"internalType":"uint32","name":"allowedMinCollectionWindow","type":"uint32"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"}],"name":"RecurringCollectorAgreementInvalidCollectionWindow","type":"error"},{"inputs":[{"internalType":"uint32","name":"requiredMinDuration","type":"uint32"},{"internalType":"uint256","name":"invalidDuration","type":"uint256"}],"name":"RecurringCollectorAgreementInvalidDuration","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"enum IRecurringCollector.AgreementNotCollectableReason","name":"reason","type":"uint8"}],"name":"RecurringCollectorAgreementNotCollectable","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"RecurringCollectorApproverNotContract","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"secondsSinceLast","type":"uint64"},{"internalType":"uint32","name":"maxSeconds","type":"uint32"}],"name":"RecurringCollectorCollectionTooLate","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint32","name":"secondsSinceLast","type":"uint32"},{"internalType":"uint32","name":"minSeconds","type":"uint32"}],"name":"RecurringCollectorCollectionTooSoon","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"address","name":"unauthorizedDataService","type":"address"}],"name":"RecurringCollectorDataServiceNotAuthorized","type":"error"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"maxSlippage","type":"uint256"}],"name":"RecurringCollectorExcessiveSlippage","type":"error"},{"inputs":[{"internalType":"bytes","name":"invalidData","type":"bytes"}],"name":"RecurringCollectorInvalidCollectData","type":"error"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"invalidPaymentType","type":"uint8"}],"name":"RecurringCollectorInvalidPaymentType","type":"error"},{"inputs":[],"name":"RecurringCollectorInvalidSigner","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint32","name":"expected","type":"uint32"},{"internalType":"uint32","name":"provided","type":"uint32"}],"name":"RecurringCollectorInvalidUpdateNonce","type":"error"},{"inputs":[{"internalType":"address","name":"unauthorizedCaller","type":"address"},{"internalType":"address","name":"dataService","type":"address"}],"name":"RecurringCollectorUnauthorizedCaller","type":"error"},{"inputs":[{"internalType":"address","name":"dataService","type":"address"}],"name":"RecurringCollectorUnauthorizedDataService","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint64","name":"lastCollectionAt","type":"uint64"}],"name":"RecurringCollectorZeroCollectionSeconds","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint64","name":"acceptedAt","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"endsAt","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"}],"name":"AgreementAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint64","name":"canceledAt","type":"uint64"},{"indexed":false,"internalType":"enum IRecurringCollector.CancelAgreementBy","name":"canceledBy","type":"uint8"}],"name":"AgreementCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint64","name":"updatedAt","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"endsAt","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"}],"name":"AgreementUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"PaymentCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dataService","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dataServiceCut","type":"uint256"}],"name":"RCACollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"SignerAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"}],"name":"SignerRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"SignerThawCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":false,"internalType":"uint256","name":"thawEndTimestamp","type":"uint256"}],"name":"SignerThawing","type":"event"},{"inputs":[],"name":"REVOKE_AUTHORIZATION_THAWING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCA","name":"signedRCA","type":"tuple"}],"name":"accept","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"acceptUnsigned","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"proofDeadline","type":"uint256"},{"internalType":"bytes","name":"proof","type":"bytes"}],"name":"authorizeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"enum IRecurringCollector.CancelAgreementBy","name":"by","type":"uint8"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"cancelThawSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"generateAgreementId","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreement","outputs":[{"components":[{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint64","name":"acceptedAt","type":"uint64"},{"internalType":"uint64","name":"lastCollectionAt","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"updateNonce","type":"uint32"},{"internalType":"uint64","name":"canceledAt","type":"uint64"},{"internalType":"enum IRecurringCollector.AgreementState","name":"state","type":"uint8"}],"internalType":"struct IRecurringCollector.AgreementData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint64","name":"acceptedAt","type":"uint64"},{"internalType":"uint64","name":"lastCollectionAt","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"updateNonce","type":"uint32"},{"internalType":"uint64","name":"canceledAt","type":"uint64"},{"internalType":"enum IRecurringCollector.AgreementState","name":"state","type":"uint8"}],"internalType":"struct IRecurringCollector.AgreementData","name":"agreement","type":"tuple"}],"name":"getCollectionInfo","outputs":[{"internalType":"bool","name":"isCollectable","type":"bool"},{"internalType":"uint256","name":"collectionSeconds","type":"uint256"},{"internalType":"enum IRecurringCollector.AgreementNotCollectableReason","name":"reason","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getMaxNextClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"getThawEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"hashRCA","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"hashRCAU","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"address","name":"signer","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCA","name":"signedRCA","type":"tuple"}],"name":"recoverRCASigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCAU","name":"signedRCAU","type":"tuple"}],"name":"recoverRCAUSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"revokeAuthorizedSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"thawSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCAU","name":"signedRCAU","type":"tuple"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"updateUnsigned","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"REVOKE_AUTHORIZATION_THAWING_PERIOD()":"9b952881","accept(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))":"57b42421","acceptUnsigned((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))":"31283d86","authorizeSigner(address,uint256,bytes)":"fee9f01f","cancel(bytes16,uint8)":"1559de11","cancelThawSigner(address)":"015cdd80","collect(uint8,bytes)":"7f07d283","generateAgreementId(address,address,address,uint64,uint256)":"e1e9b475","getAgreement(bytes16)":"ffb96119","getCollectionInfo((address,address,address,uint64,uint64,uint64,uint256,uint256,uint32,uint32,uint32,uint64,uint8))":"a9dafcb9","getMaxNextClaim(bytes16)":"b6cd33a7","getThawEnd(address)":"bea5d2ab","hashRCA((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))":"8b1d9fc8","hashRCAU((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))":"4b7827df","isAuthorized(address,address)":"65e4ad9e","recoverRCASigner(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))":"a0ece47f","recoverRCAUSigner(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))":"a5144658","revokeAuthorizedSigner(address)":"39aa7416","thawSigner(address)":"1354f019","update(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))":"47e035ea","updateUnsigned((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))":"3574a167"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AuthorizableInvalidSignerProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"}],\"name\":\"AuthorizableInvalidSignerProofDeadline\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"revoked\",\"type\":\"bool\"}],\"name\":\"AuthorizableSignerAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"AuthorizableSignerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"AuthorizableSignerNotThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"AuthorizableSignerStillThawing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecurringCollectorAgreementAddressNotSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"}],\"name\":\"RecurringCollectorAgreementDeadlineElapsed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"}],\"name\":\"RecurringCollectorAgreementElapsedEndsAt\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecurringCollectorAgreementIdZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"enum IRecurringCollector.AgreementState\",\"name\":\"incorrectState\",\"type\":\"uint8\"}],\"name\":\"RecurringCollectorAgreementIncorrectState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"allowedMinCollectionWindow\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"}],\"name\":\"RecurringCollectorAgreementInvalidCollectionWindow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"requiredMinDuration\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"invalidDuration\",\"type\":\"uint256\"}],\"name\":\"RecurringCollectorAgreementInvalidDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"enum IRecurringCollector.AgreementNotCollectableReason\",\"name\":\"reason\",\"type\":\"uint8\"}],\"name\":\"RecurringCollectorAgreementNotCollectable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"RecurringCollectorApproverNotContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"secondsSinceLast\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxSeconds\",\"type\":\"uint32\"}],\"name\":\"RecurringCollectorCollectionTooLate\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint32\",\"name\":\"secondsSinceLast\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"minSeconds\",\"type\":\"uint32\"}],\"name\":\"RecurringCollectorCollectionTooSoon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"unauthorizedDataService\",\"type\":\"address\"}],\"name\":\"RecurringCollectorDataServiceNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSlippage\",\"type\":\"uint256\"}],\"name\":\"RecurringCollectorExcessiveSlippage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"invalidData\",\"type\":\"bytes\"}],\"name\":\"RecurringCollectorInvalidCollectData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"invalidPaymentType\",\"type\":\"uint8\"}],\"name\":\"RecurringCollectorInvalidPaymentType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RecurringCollectorInvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint32\",\"name\":\"expected\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"provided\",\"type\":\"uint32\"}],\"name\":\"RecurringCollectorInvalidUpdateNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"unauthorizedCaller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"RecurringCollectorUnauthorizedCaller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"RecurringCollectorUnauthorizedDataService\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"lastCollectionAt\",\"type\":\"uint64\"}],\"name\":\"RecurringCollectorZeroCollectionSeconds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"acceptedAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"}],\"name\":\"AgreementAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"canceledAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enum IRecurringCollector.CancelAgreementBy\",\"name\":\"canceledBy\",\"type\":\"uint8\"}],\"name\":\"AgreementCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"updatedAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"}],\"name\":\"AgreementUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataServiceCut\",\"type\":\"uint256\"}],\"name\":\"RCACollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerAuthorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawing\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"REVOKE_AUTHORIZATION_THAWING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCA\",\"name\":\"signedRCA\",\"type\":\"tuple\"}],\"name\":\"accept\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"}],\"name\":\"acceptUnsigned\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"authorizeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"enum IRecurringCollector.CancelAgreementBy\",\"name\":\"by\",\"type\":\"uint8\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"cancelThawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"generateAgreementId\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"acceptedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastCollectionAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"updateNonce\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"canceledAt\",\"type\":\"uint64\"},{\"internalType\":\"enum IRecurringCollector.AgreementState\",\"name\":\"state\",\"type\":\"uint8\"}],\"internalType\":\"struct IRecurringCollector.AgreementData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"acceptedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastCollectionAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"updateNonce\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"canceledAt\",\"type\":\"uint64\"},{\"internalType\":\"enum IRecurringCollector.AgreementState\",\"name\":\"state\",\"type\":\"uint8\"}],\"internalType\":\"struct IRecurringCollector.AgreementData\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"getCollectionInfo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCollectable\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"collectionSeconds\",\"type\":\"uint256\"},{\"internalType\":\"enum IRecurringCollector.AgreementNotCollectableReason\",\"name\":\"reason\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getMaxNextClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"getThawEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"}],\"name\":\"hashRCA\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"}],\"name\":\"hashRCAU\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCA\",\"name\":\"signedRCA\",\"type\":\"tuple\"}],\"name\":\"recoverRCASigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCAU\",\"name\":\"signedRCAU\",\"type\":\"tuple\"}],\"name\":\"recoverRCAUSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"revokeAuthorizedSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"thawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCAU\",\"name\":\"signedRCAU\",\"type\":\"tuple\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"}],\"name\":\"updateUnsigned\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Implements the {IPaymentCollector} interface as defined by the Graph Horizon payments protocol.\",\"errors\":{\"AuthorizableInvalidSignerProofDeadline(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"proofDeadline\":\"The deadline for the proof provided\"}}],\"AuthorizableSignerAlreadyAuthorized(address,address,bool)\":[{\"params\":{\"authorizer\":\"The address of the authorizer\",\"revoked\":\"The revoked status of the authorization\",\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerNotAuthorized(address,address)\":[{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerNotThawing(address)\":[{\"params\":{\"signer\":\"The address of the signer\"}}],\"AuthorizableSignerStillThawing(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}],\"RecurringCollectorAgreementDeadlineElapsed(uint256,uint64)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"deadline\":\"The elapsed deadline timestamp\"}}],\"RecurringCollectorAgreementElapsedEndsAt(uint256,uint64)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"endsAt\":\"The agreement end timestamp\"}}],\"RecurringCollectorAgreementIncorrectState(bytes16,uint8)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"incorrectState\":\"The incorrect state\"}}],\"RecurringCollectorAgreementInvalidCollectionWindow(uint32,uint32,uint32)\":[{\"params\":{\"allowedMinCollectionWindow\":\"The allowed minimum collection window\",\"maxSecondsPerCollection\":\"The maximum seconds per collection\",\"minSecondsPerCollection\":\"The minimum seconds per collection\"}}],\"RecurringCollectorAgreementInvalidDuration(uint32,uint256)\":[{\"params\":{\"invalidDuration\":\"The invalid duration\",\"requiredMinDuration\":\"The required minimum duration\"}}],\"RecurringCollectorAgreementNotCollectable(bytes16,uint8)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"reason\":\"The reason why the agreement is not collectable\"}}],\"RecurringCollectorApproverNotContract(address)\":[{\"params\":{\"approver\":\"The address that is not a contract\"}}],\"RecurringCollectorCollectionTooLate(bytes16,uint64,uint32)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"maxSeconds\":\"Maximum seconds between collections\",\"secondsSinceLast\":\"Seconds since last collection\"}}],\"RecurringCollectorCollectionTooSoon(bytes16,uint32,uint32)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"minSeconds\":\"Minimum seconds between collections\",\"secondsSinceLast\":\"Seconds since last collection\"}}],\"RecurringCollectorDataServiceNotAuthorized(bytes16,address)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"unauthorizedDataService\":\"The address of the unauthorized data service\"}}],\"RecurringCollectorExcessiveSlippage(uint256,uint256,uint256)\":[{\"params\":{\"actual\":\"The actual amount that would be collected\",\"maxSlippage\":\"The maximum allowed slippage\",\"requested\":\"The amount of tokens requested to collect\"}}],\"RecurringCollectorInvalidCollectData(bytes)\":[{\"params\":{\"invalidData\":\"The invalid data\"}}],\"RecurringCollectorInvalidPaymentType(uint8)\":[{\"params\":{\"invalidPaymentType\":\"The invalid payment type\"}}],\"RecurringCollectorInvalidUpdateNonce(bytes16,uint32,uint32)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"expected\":\"The expected nonce\",\"provided\":\"The provided nonce\"}}],\"RecurringCollectorUnauthorizedCaller(address,address)\":[{\"params\":{\"dataService\":\"The address of the data service\",\"unauthorizedCaller\":\"The address of the caller\"}}],\"RecurringCollectorUnauthorizedDataService(address)\":[{\"params\":{\"dataService\":\"The address of the unauthorized data service\"}}],\"RecurringCollectorZeroCollectionSeconds(bytes16,uint256,uint64)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"currentTimestamp\":\"The current timestamp\",\"lastCollectionAt\":\"The timestamp when the last collection was done\"}}]},\"events\":{\"AgreementAccepted(address,address,address,bytes16,uint64,uint64,uint256,uint256,uint32,uint32)\":{\"params\":{\"acceptedAt\":\"The timestamp when the agreement was accepted\",\"agreementId\":\"The agreement ID\",\"dataService\":\"The address of the data service\",\"endsAt\":\"The timestamp when the agreement ends\",\"maxInitialTokens\":\"The maximum amount of tokens that can be collected in the first collection\",\"maxOngoingTokensPerSecond\":\"The maximum amount of tokens that can be collected per second\",\"maxSecondsPerCollection\":\"The maximum amount of seconds that can pass between collections\",\"minSecondsPerCollection\":\"The minimum amount of seconds that must pass between collections\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\"}},\"AgreementCanceled(address,address,address,bytes16,uint64,uint8)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"canceledAt\":\"The timestamp when the agreement was canceled\",\"canceledBy\":\"The party that canceled the agreement\",\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\"}},\"AgreementUpdated(address,address,address,bytes16,uint64,uint64,uint256,uint256,uint32,uint32)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"dataService\":\"The address of the data service\",\"endsAt\":\"The timestamp when the agreement ends\",\"maxInitialTokens\":\"The maximum amount of tokens that can be collected in the first collection\",\"maxOngoingTokensPerSecond\":\"The maximum amount of tokens that can be collected per second\",\"maxSecondsPerCollection\":\"The maximum amount of seconds that can pass between collections\",\"minSecondsPerCollection\":\"The minimum amount of seconds that must pass between collections\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\",\"updatedAt\":\"The timestamp when the agreement was updated\"}},\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"params\":{\"collectionId\":\"The id for the collection. Can be used at the discretion of the collector to group multiple payments.\",\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The payment type collected as defined by {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens being collected\"}},\"RCACollected(address,address,address,bytes16,bytes32,uint256,uint256)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"collectionId\":\"The collection ID\",\"dataService\":\"The address of the data service\",\"dataServiceCut\":\"The tokens cut for the data service\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens collected\"}},\"SignerAuthorized(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"}},\"SignerRevoked(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer revoking the signer\",\"signer\":\"The address of the signer\"}},\"SignerThawCanceled(address,address,uint256)\":{\"params\":{\"authorizer\":\"The address of the authorizer cancelling the thawing\",\"signer\":\"The address of the signer\",\"thawEndTimestamp\":\"The timestamp at which the thawing period was scheduled to end\"}},\"SignerThawing(address,address,uint256)\":{\"params\":{\"authorizer\":\"The address of the authorizer thawing the signer\",\"signer\":\"The address of the signer to thaw\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}},\"kind\":\"dev\",\"methods\":{\"REVOKE_AUTHORIZATION_THAWING_PERIOD()\":{\"returns\":{\"_0\":\"The period in seconds\"}},\"accept(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"params\":{\"signedRCA\":\"The signed Recurring Collection Agreement which is to be accepted.\"},\"returns\":{\"agreementId\":\"The deterministically generated agreement ID\"}},\"acceptUnsigned((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"details\":\"Caller must be the data service the RCA was issued to. The payer must be a contract implementing {IContractApprover.isAuthorizedAgreement} and must return the magic value for the RCA's EIP712 hash.\",\"params\":{\"rca\":\"The Recurring Collection Agreement to accept\"},\"returns\":{\"agreementId\":\"The deterministically generated agreement ID\"}},\"authorizeSigner(address,uint256,bytes)\":{\"details\":\"Requirements: - `signer` must not be already authorized - `proofDeadline` must be greater than the current timestamp - `proof` must be a valid signature from the signer being authorized Emits a {SignerAuthorized} event\",\"params\":{\"proof\":\"The proof provided by the signer to be authorized by the authorizer consists of (chain id, verifying contract address, domain, proof deadline, authorizer address)\",\"proofDeadline\":\"The deadline for the proof provided by the signer\",\"signer\":\"The address of the signer\"}},\"cancel(bytes16,uint8)\":{\"params\":{\"agreementId\":\"The agreement's ID.\",\"by\":\"The party that is canceling the agreement.\"}},\"cancelThawSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawing and authorized by the function caller Emits a {SignerThawCanceled} event\",\"params\":{\"signer\":\"The address of the signer to cancel thawing\"}},\"collect(uint8,bytes)\":{\"details\":\"This function should require the caller to present some form of evidence of the payer's debt to the receiver. The collector should validate this evidence and, if valid, collect the payment. Emits a {PaymentCollected} event\",\"params\":{\"data\":\"Additional data required for the payment collection. Will vary depending on the collector implementation.\",\"paymentType\":\"The payment type to collect, as defined by {IGraphPayments}\"},\"returns\":{\"_0\":\"The amount of tokens collected\"}},\"generateAgreementId(address,address,address,uint64,uint256)\":{\"params\":{\"dataService\":\"The address of the data service\",\"deadline\":\"The deadline for accepting the agreement\",\"nonce\":\"A unique nonce for preventing collisions\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\"},\"returns\":{\"agreementId\":\"The deterministically generated agreement ID\"}},\"getAgreement(bytes16)\":{\"params\":{\"agreementId\":\"The ID of the agreement to retrieve.\"},\"returns\":{\"_0\":\"The AgreementData struct containing the agreement's data.\"}},\"getCollectionInfo((address,address,address,uint64,uint64,uint64,uint256,uint256,uint32,uint32,uint32,uint64,uint8))\":{\"params\":{\"agreement\":\"The agreement data\"},\"returns\":{\"collectionSeconds\":\"The valid collection duration in seconds (0 if not collectable)\",\"isCollectable\":\"Whether the agreement is in a valid state that allows collection attempts, not that there are necessarily funds available to collect.\",\"reason\":\"The reason why the agreement is not collectable (None if collectable)\"}},\"getMaxNextClaim(bytes16)\":{\"details\":\"Computes the worst-case (maximum possible) claim amount based on current on-chain agreement state. For active agreements, uses `endsAt` as the upper bound (not block.timestamp). Returns 0 for NotAccepted, CanceledByServiceProvider, or fully expired agreements.\",\"params\":{\"agreementId\":\"The ID of the agreement\"},\"returns\":{\"_0\":\"The maximum tokens that could be collected in the next collection\"}},\"getThawEnd(address)\":{\"params\":{\"signer\":\"The address of the signer\"},\"returns\":{\"_0\":\"The timestamp at which the thawing period ends\"}},\"hashRCA((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"params\":{\"rca\":\"The RCA for which to compute the hash.\"},\"returns\":{\"_0\":\"The hash of the RCA.\"}},\"hashRCAU((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"params\":{\"rcau\":\"The RCAU for which to compute the hash.\"},\"returns\":{\"_0\":\"The hash of the RCAU.\"}},\"isAuthorized(address,address)\":{\"params\":{\"authorizer\":\"The address of the authorizer\",\"signer\":\"The address of the signer\"},\"returns\":{\"_0\":\"true if the signer is authorized by the authorizer, false otherwise\"}},\"recoverRCASigner(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"params\":{\"signedRCA\":\"The SignedRCA containing the RCA and its signature.\"},\"returns\":{\"_0\":\"The address of the signer.\"}},\"recoverRCAUSigner(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"params\":{\"signedRCAU\":\"The SignedRCAU containing the RCAU and its signature.\"},\"returns\":{\"_0\":\"The address of the signer.\"}},\"revokeAuthorizedSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawed and authorized by the function caller Emits a {SignerRevoked} event\",\"params\":{\"signer\":\"The address of the signer\"}},\"thawSigner(address)\":{\"details\":\"Thawing a signer signals that signatures from that signer will soon be deemed invalid. Once a signer is thawed, they should be viewed as revoked regardless of their revocation status. If a signer is already thawing and this function is called, the thawing period is reset. Requirements: - `signer` must be authorized by the authorizer calling this function Emits a {SignerThawing} event\",\"params\":{\"signer\":\"The address of the signer to thaw\"}},\"update(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"params\":{\"signedRCAU\":\"The signed Recurring Collection Agreement Update which is to be applied.\"}},\"updateUnsigned((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"details\":\"Caller must be the data service for the agreement. The payer (stored in the agreement) must be a contract implementing {IContractApprover.isAuthorizedAgreement} and must return the magic value for the RCAU's EIP712 hash.\",\"params\":{\"rcau\":\"The Recurring Collection Agreement Update to apply\"}}},\"title\":\"Interface for the {RecurringCollector} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"AuthorizableInvalidSignerProof()\":[{\"notice\":\"Thrown when the signer proof is invalid\"}],\"AuthorizableInvalidSignerProofDeadline(uint256,uint256)\":[{\"notice\":\"Thrown when the signer proof deadline is invalid\"}],\"AuthorizableSignerAlreadyAuthorized(address,address,bool)\":[{\"notice\":\"Thrown when attempting to authorize a signer that is already authorized\"}],\"AuthorizableSignerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the signer is not authorized by the authorizer\"}],\"AuthorizableSignerNotThawing(address)\":[{\"notice\":\"Thrown when the signer is not thawing\"}],\"AuthorizableSignerStillThawing(uint256,uint256)\":[{\"notice\":\"Thrown when the signer is still thawing\"}],\"RecurringCollectorAgreementAddressNotSet()\":[{\"notice\":\"Thrown when accepting an agreement with an address that is not set\"}],\"RecurringCollectorAgreementDeadlineElapsed(uint256,uint64)\":[{\"notice\":\"Thrown when interacting with an agreement with an elapsed deadline\"}],\"RecurringCollectorAgreementElapsedEndsAt(uint256,uint64)\":[{\"notice\":\"Thrown when accepting or upgrading an agreement with an elapsed endsAt\"}],\"RecurringCollectorAgreementIdZero()\":[{\"notice\":\"Thrown when accepting an agreement with a zero ID\"}],\"RecurringCollectorAgreementIncorrectState(bytes16,uint8)\":[{\"notice\":\"Thrown when interacting with an agreement that has an incorrect state\"}],\"RecurringCollectorAgreementInvalidCollectionWindow(uint32,uint32,uint32)\":[{\"notice\":\"Thrown when accepting or upgrading an agreement with an elapsed endsAt\"}],\"RecurringCollectorAgreementInvalidDuration(uint32,uint256)\":[{\"notice\":\"Thrown when accepting or upgrading an agreement with an invalid duration\"}],\"RecurringCollectorAgreementNotCollectable(bytes16,uint8)\":[{\"notice\":\"Thrown when an agreement is not collectable\"}],\"RecurringCollectorApproverNotContract(address)\":[{\"notice\":\"Thrown when the contract approver is not a contract\"}],\"RecurringCollectorCollectionTooLate(bytes16,uint64,uint32)\":[{\"notice\":\"Thrown when calling collect() too late\"}],\"RecurringCollectorCollectionTooSoon(bytes16,uint32,uint32)\":[{\"notice\":\"Thrown when calling collect() too soon\"}],\"RecurringCollectorDataServiceNotAuthorized(bytes16,address)\":[{\"notice\":\"Thrown when interacting with an agreement not owned by the message sender\"}],\"RecurringCollectorExcessiveSlippage(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when collected tokens are less than requested beyond the allowed slippage\"}],\"RecurringCollectorInvalidCollectData(bytes)\":[{\"notice\":\"Thrown when calling collect() with invalid data\"}],\"RecurringCollectorInvalidPaymentType(uint8)\":[{\"notice\":\"Thrown when the payment type is not IndexingFee\"}],\"RecurringCollectorInvalidSigner()\":[{\"notice\":\"Thrown when the signer is invalid\"}],\"RecurringCollectorInvalidUpdateNonce(bytes16,uint32,uint32)\":[{\"notice\":\"Thrown when calling update() with an invalid nonce\"}],\"RecurringCollectorUnauthorizedCaller(address,address)\":[{\"notice\":\"Thrown when the caller is not the data service the RCA was issued to\"}],\"RecurringCollectorUnauthorizedDataService(address)\":[{\"notice\":\"Thrown when the data service is not authorized for the service provider\"}],\"RecurringCollectorZeroCollectionSeconds(bytes16,uint256,uint64)\":[{\"notice\":\"Thrown when calling collect() with a zero collection seconds\"}]},\"events\":{\"AgreementAccepted(address,address,address,bytes16,uint64,uint64,uint256,uint256,uint32,uint32)\":{\"notice\":\"Emitted when an agreement is accepted\"},\"AgreementCanceled(address,address,address,bytes16,uint64,uint8)\":{\"notice\":\"Emitted when an agreement is canceled\"},\"AgreementUpdated(address,address,address,bytes16,uint64,uint64,uint256,uint256,uint32,uint32)\":{\"notice\":\"Emitted when an agreement is updated\"},\"PaymentCollected(uint8,bytes32,address,address,address,uint256)\":{\"notice\":\"Emitted when a payment is collected\"},\"RCACollected(address,address,address,bytes16,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when an RCA is collected\"},\"SignerAuthorized(address,address)\":{\"notice\":\"Emitted when a signer is authorized to sign for a authorizer\"},\"SignerRevoked(address,address)\":{\"notice\":\"Emitted when a signer has been revoked after thawing\"},\"SignerThawCanceled(address,address,uint256)\":{\"notice\":\"Emitted when the thawing of a signer is cancelled\"},\"SignerThawing(address,address,uint256)\":{\"notice\":\"Emitted when a signer is thawed to be de-authorized\"}},\"kind\":\"user\",\"methods\":{\"REVOKE_AUTHORIZATION_THAWING_PERIOD()\":{\"notice\":\"The period after which a signer can be revoked after thawing\"},\"accept(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"notice\":\"Accept an indexing agreement.\"},\"acceptUnsigned((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"notice\":\"Accept an RCA where the payer is a contract that authorizes via callback.\"},\"authorizeSigner(address,uint256,bytes)\":{\"notice\":\"Authorize a signer to sign on behalf of the authorizer\"},\"cancel(bytes16,uint8)\":{\"notice\":\"Cancel an indexing agreement.\"},\"cancelThawSigner(address)\":{\"notice\":\"Stops thawing a signer.\"},\"collect(uint8,bytes)\":{\"notice\":\"Initiate a payment collection through the payments protocol\"},\"generateAgreementId(address,address,address,uint64,uint256)\":{\"notice\":\"Generate a deterministic agreement ID from agreement parameters\"},\"getAgreement(bytes16)\":{\"notice\":\"Gets an agreement.\"},\"getCollectionInfo((address,address,address,uint64,uint64,uint64,uint256,uint256,uint32,uint32,uint32,uint64,uint8))\":{\"notice\":\"Get collection info for an agreement\"},\"getMaxNextClaim(bytes16)\":{\"notice\":\"Get the maximum tokens collectable in the next collection for an agreement.\"},\"getThawEnd(address)\":{\"notice\":\"Returns the timestamp at which the thawing period ends for a signer. Returns 0 if the signer is not thawing.\"},\"hashRCA((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"notice\":\"Computes the hash of a RecurringCollectionAgreement (RCA).\"},\"hashRCAU((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"notice\":\"Computes the hash of a RecurringCollectionAgreementUpdate (RCAU).\"},\"isAuthorized(address,address)\":{\"notice\":\"Returns true if the signer is authorized by the authorizer\"},\"recoverRCASigner(((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"notice\":\"Recovers the signer address of a signed RecurringCollectionAgreement (RCA).\"},\"recoverRCAUSigner(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"notice\":\"Recovers the signer address of a signed RecurringCollectionAgreementUpdate (RCAU).\"},\"revokeAuthorizedSigner(address)\":{\"notice\":\"Revokes a signer if thawed.\"},\"thawSigner(address)\":{\"notice\":\"Starts thawing a signer to be de-authorized\"},\"update(((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"notice\":\"Update an indexing agreement.\"},\"updateUnsigned((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"notice\":\"Update an agreement where the payer is a contract that authorizes via callback.\"}},\"notice\":\"Implements a payments collector contract that can be used to collect recurrent payments.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":\"IRecurringCollector\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":{\"keccak256\":\"0x3b37aaac35d6566dbed03936b7111f861dfe38f3141064e48ca2336bd9aa9e41\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1dd54449dba3eddebd095213b03c5a3109da1a534271ad1807ddc159cee50081\",\"dweb:/ipfs/QmZCjoFUq4RyhdzswaZgJkSHAbTAHXXn46deVxy69HtQSr\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol":{"IIndexingAgreementManager":{"abi":[{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyAccepted","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotAccepted","type":"error"},{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"IndexingAgreementManagerAgreementNotAuthorized","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"IndexingAgreementManagerAgreementStillClaimable","type":"error"},{"inputs":[{"internalType":"address","name":"dataService","type":"address"}],"name":"IndexingAgreementManagerInvalidDataService","type":"error"},{"inputs":[{"internalType":"string","name":"field","type":"string"}],"name":"IndexingAgreementManagerInvalidRCAField","type":"error"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"IndexingAgreementManagerPayerMismatch","type":"error"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"IndexingAgreementManagerStillHasAgreements","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"AgreementOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"oldMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxNextClaim","type":"uint256"}],"name":"AgreementReconciled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"pendingMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"updateNonce","type":"uint32"}],"name":"AgreementUpdateOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"requiredEscrow","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deposited","type":"uint256"}],"name":"EscrowFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EscrowThawed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"EscrowWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"OfferRevoked","type":"event"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"cancelAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementInfo","outputs":[{"components":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"uint32","name":"pendingUpdateNonce","type":"uint32"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"},{"internalType":"uint256","name":"pendingUpdateMaxNextClaim","type":"uint256"},{"internalType":"bytes32","name":"agreementHash","type":"bytes32"},{"internalType":"bytes32","name":"pendingUpdateHash","type":"bytes32"}],"internalType":"struct IIndexingAgreementManager.AgreementInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementMaxNextClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getDeficit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreementCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreements","outputs":[{"internalType":"bytes16[]","name":"","type":"bytes16[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getRequiredEscrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"maintain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"offerAgreement","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"offerAgreementUpdate","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"reconcile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"reconcileAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16[]","name":"agreementIds","type":"bytes16[]"}],"name":"reconcileBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"removeAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"revokeOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelAgreement(bytes16)":"f83118af","getAgreementInfo(bytes16)":"e9b78bc8","getAgreementMaxNextClaim(bytes16)":"085b3e65","getDeficit(address)":"a74558e1","getIndexerAgreementCount(address)":"f2da52c5","getIndexerAgreements(address)":"a2a58379","getRequiredEscrow(address)":"e9a91276","maintain(address)":"037c5d7f","offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))":"1f19ce54","offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))":"27cc6df1","reconcile(address)":"09a18635","reconcileAgreement(bytes16)":"d253c4c4","reconcileBatch(bytes16[])":"78ecca5f","removeAgreement(bytes16)":"1d1e41aa","revokeOffer(bytes16)":"59249b09"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementAlreadyAccepted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementAlreadyOffered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementNotAccepted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"}],\"name\":\"IndexingAgreementManagerAgreementNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementNotOffered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"}],\"name\":\"IndexingAgreementManagerAgreementStillClaimable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerInvalidDataService\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"field\",\"type\":\"string\"}],\"name\":\"IndexingAgreementManagerInvalidRCAField\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerPayerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerStillHasAgreements\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"AgreementCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"}],\"name\":\"AgreementOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxNextClaim\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxNextClaim\",\"type\":\"uint256\"}],\"name\":\"AgreementReconciled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"AgreementRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pendingMaxNextClaim\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"updateNonce\",\"type\":\"uint32\"}],\"name\":\"AgreementUpdateOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredEscrow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposited\",\"type\":\"uint256\"}],\"name\":\"EscrowFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"EscrowThawed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"EscrowWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"OfferRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"cancelAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getAgreementInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pendingUpdateNonce\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingUpdateMaxNextClaim\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pendingUpdateHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IIndexingAgreementManager.AgreementInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getAgreementMaxNextClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getDeficit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerAgreementCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerAgreements\",\"outputs\":[{\"internalType\":\"bytes16[]\",\"name\":\"\",\"type\":\"bytes16[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getRequiredEscrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"maintain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"}],\"name\":\"offerAgreement\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"}],\"name\":\"offerAgreementUpdate\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"reconcile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"reconcileAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16[]\",\"name\":\"agreementIds\",\"type\":\"bytes16[]\"}],\"name\":\"reconcileBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"removeAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"revokeOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"IndexingAgreementManagerAgreementAlreadyAccepted(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementAlreadyOffered(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementNotAccepted(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementNotAuthorized(bytes32)\":[{\"params\":{\"agreementHash\":\"The hash that was not authorized\"}}],\"IndexingAgreementManagerAgreementNotOffered(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementStillClaimable(bytes16,uint256)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"maxNextClaim\":\"The remaining max next claim\"}}],\"IndexingAgreementManagerInvalidDataService(address)\":[{\"params\":{\"dataService\":\"The address that was expected to be a contract\"}}],\"IndexingAgreementManagerInvalidRCAField(string)\":[{\"params\":{\"field\":\"The name of the invalid field\"}}],\"IndexingAgreementManagerPayerMismatch(address,address)\":[{\"params\":{\"expected\":\"The expected payer (this contract)\",\"payer\":\"The payer address in the RCA\"}}],\"IndexingAgreementManagerStillHasAgreements(address)\":[{\"params\":{\"indexer\":\"The indexer address\"}}]},\"events\":{\"AgreementCanceled(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"indexer\":\"The indexer for this agreement\"}},\"AgreementOffered(bytes16,address,uint256)\":{\"params\":{\"agreementId\":\"The deterministic agreement ID\",\"indexer\":\"The indexer (service provider) for this agreement\",\"maxNextClaim\":\"The calculated maximum next claim amount\"}},\"AgreementReconciled(bytes16,uint256,uint256)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"newMaxNextClaim\":\"The updated max next claim\",\"oldMaxNextClaim\":\"The previous max next claim\"}},\"AgreementRemoved(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID being removed\",\"indexer\":\"The indexer whose required escrow was reduced\"}},\"AgreementUpdateOffered(bytes16,uint256,uint32)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"pendingMaxNextClaim\":\"The max next claim for the pending update\",\"updateNonce\":\"The RCAU nonce for the pending update\"}},\"EscrowFunded(address,uint256,uint256,uint256)\":{\"params\":{\"currentBalance\":\"The escrow balance after funding\",\"deposited\":\"The amount deposited in this transaction\",\"indexer\":\"The indexer whose escrow was funded\",\"requiredEscrow\":\"The total required escrow for the indexer\"}},\"EscrowThawed(address,uint256)\":{\"params\":{\"indexer\":\"The indexer whose escrow is being thawed\",\"tokens\":\"The amount of tokens being thawed\"}},\"EscrowWithdrawn(address)\":{\"params\":{\"indexer\":\"The indexer whose escrow was withdrawn\"}},\"OfferRevoked(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"indexer\":\"The indexer whose required escrow was reduced\"}}},\"kind\":\"dev\",\"methods\":{\"cancelAgreement(bytes16)\":{\"details\":\"Requires OPERATOR_ROLE. Reads agreement state from RecurringCollector: - NotAccepted: reverts (use {revokeOffer} instead) - Accepted: cancels via the data service, then reconciles and funds escrow - Already canceled: idempotent \\u2014 reconciles and funds escrow without re-canceling After cancellation, call {removeAgreement} once the collection window closes.\",\"params\":{\"agreementId\":\"The agreement ID to cancel\"}},\"getAgreementInfo(bytes16)\":{\"params\":{\"agreementId\":\"The agreement ID\"},\"returns\":{\"_0\":\"The agreement info struct (all fields zero if not tracked)\"}},\"getAgreementMaxNextClaim(bytes16)\":{\"params\":{\"agreementId\":\"The agreement ID\"},\"returns\":{\"_0\":\"The current max next claim stored for this agreement\"}},\"getDeficit(address)\":{\"details\":\"Returns 0 if escrow is fully funded or over-funded.\",\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The deficit amount (required - current balance), or 0 if no deficit\"}},\"getIndexerAgreementCount(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The count of tracked agreements\"}},\"getIndexerAgreements(address)\":{\"details\":\"Returns the full set of tracked agreement IDs. May be expensive for indexers with many agreements \\u2014 prefer {getIndexerAgreementCount} for on-chain use.\",\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The array of agreement IDs\"}},\"getRequiredEscrow(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The sum of max next claims for all managed agreements for this indexer\"}},\"maintain(address)\":{\"details\":\"Permissionless. Two-phase operation: - If a previous thaw has completed: withdraws tokens back to this contract - If escrow balance remains: initiates a thaw for the available balance Only operates when the indexer has zero tracked agreements. Guards against reducing an in-progress thaw.\",\"params\":{\"indexer\":\"The indexer to maintain\"}},\"offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"details\":\"Calculates max next claim from RCA parameters, stores the authorized hash for the {IContractApprover} callback, and funds the escrow.\",\"params\":{\"rca\":\"The Recurring Collection Agreement parameters\"},\"returns\":{\"agreementId\":\"The deterministic agreement ID\"}},\"offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"details\":\"Stores the authorized RCAU hash for the {IContractApprover} callback and adds the pending update's max next claim to the required escrow. Treats the pending update as a separate escrow entry alongside the current agreement. If a previous pending update exists, it is replaced.\",\"params\":{\"rcau\":\"The Recurring Collection Agreement Update parameters\"},\"returns\":{\"agreementId\":\"The agreement ID from the RCAU\"}},\"reconcile(address)\":{\"details\":\"Permissionless. Iterates all tracked agreements for the indexer \\u2014 O(n) gas, may hit gas limits with many agreements. Prefer reconcileAgreement for individual updates, or reconcileBatch for controlled batching.\",\"params\":{\"indexer\":\"The indexer to reconcile\"}},\"reconcileAgreement(bytes16)\":{\"details\":\"Permissionless. This is the primary reconciliation function \\u2014 gas-predictable, per-agreement. Skips if agreement is not yet accepted in RecurringCollector. Should be called after collections, cancellations, or agreement updates.\",\"params\":{\"agreementId\":\"The agreement ID to reconcile\"}},\"reconcileBatch(bytes16[])\":{\"details\":\"Permissionless. Allows callers to control gas usage by choosing which agreements to reconcile in a single transaction.\",\"params\":{\"agreementIds\":\"The agreement IDs to reconcile\"}},\"removeAgreement(bytes16)\":{\"details\":\"Permissionless. Only succeeds when the agreement's max next claim is 0 (no more collections possible). This covers: CanceledByServiceProvider (immediate), CanceledByPayer (after window expires), active agreements past endsAt, and NotAccepted offers past their deadline.\",\"params\":{\"agreementId\":\"The agreement ID to remove\"}},\"revokeOffer(bytes16)\":{\"details\":\"Requires OPERATOR_ROLE. Clears the agreement tracking and authorized hashes, freeing the reserved escrow. Any pending update is also cleared.\",\"params\":{\"agreementId\":\"The agreement ID to revoke\"}}},\"title\":\"Interface for the {IndexingAgreementManager} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"IndexingAgreementManagerAgreementAlreadyAccepted(bytes16)\":[{\"notice\":\"Thrown when trying to revoke an agreement that is already accepted\"}],\"IndexingAgreementManagerAgreementAlreadyOffered(bytes16)\":[{\"notice\":\"Thrown when trying to offer an agreement that is already offered\"}],\"IndexingAgreementManagerAgreementNotAccepted(bytes16)\":[{\"notice\":\"Thrown when trying to cancel an agreement that has not been accepted yet\"}],\"IndexingAgreementManagerAgreementNotAuthorized(bytes32)\":[{\"notice\":\"Thrown when an agreement hash is not authorized\"}],\"IndexingAgreementManagerAgreementNotOffered(bytes16)\":[{\"notice\":\"Thrown when trying to operate on an agreement that is not offered\"}],\"IndexingAgreementManagerAgreementStillClaimable(bytes16,uint256)\":[{\"notice\":\"Thrown when trying to remove an agreement that is still claimable\"}],\"IndexingAgreementManagerInvalidDataService(address)\":[{\"notice\":\"Thrown when the data service address has no deployed code\"}],\"IndexingAgreementManagerInvalidRCAField(string)\":[{\"notice\":\"Thrown when an RCA has a zero-address service provider or data service\"}],\"IndexingAgreementManagerPayerMismatch(address,address)\":[{\"notice\":\"Thrown when the RCA payer is not this contract\"}],\"IndexingAgreementManagerStillHasAgreements(address)\":[{\"notice\":\"Thrown when maintain is called but the indexer still has agreements\"}]},\"events\":{\"AgreementCanceled(bytes16,address)\":{\"notice\":\"Emitted when an agreement is canceled via the data service\"},\"AgreementOffered(bytes16,address,uint256)\":{\"notice\":\"Emitted when an agreement is offered for escrow management\"},\"AgreementReconciled(bytes16,uint256,uint256)\":{\"notice\":\"Emitted when an agreement's max next claim is recalculated\"},\"AgreementRemoved(bytes16,address)\":{\"notice\":\"Emitted when an agreement is removed from escrow management\"},\"AgreementUpdateOffered(bytes16,uint256,uint32)\":{\"notice\":\"Emitted when a pending agreement update is offered\"},\"EscrowFunded(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when escrow is funded for an indexer\"},\"EscrowThawed(address,uint256)\":{\"notice\":\"Emitted when escrow tokens are thawed for withdrawal\"},\"EscrowWithdrawn(address)\":{\"notice\":\"Emitted when thawed escrow tokens are withdrawn\"},\"OfferRevoked(bytes16,address)\":{\"notice\":\"Emitted when an agreement offer is revoked before acceptance\"}},\"kind\":\"user\",\"methods\":{\"cancelAgreement(bytes16)\":{\"notice\":\"Cancel an accepted agreement by routing through the data service.\"},\"getAgreementInfo(bytes16)\":{\"notice\":\"Get the full tracked state for a specific agreement\"},\"getAgreementMaxNextClaim(bytes16)\":{\"notice\":\"Get the max next claim for a specific agreement\"},\"getDeficit(address)\":{\"notice\":\"Get the current escrow deficit for an indexer\"},\"getIndexerAgreementCount(address)\":{\"notice\":\"Get the number of managed agreements for an indexer\"},\"getIndexerAgreements(address)\":{\"notice\":\"Get all managed agreement IDs for an indexer\"},\"getRequiredEscrow(address)\":{\"notice\":\"Get the total required escrow for an indexer\"},\"maintain(address)\":{\"notice\":\"Maintain escrow for an indexer with no remaining agreements.\"},\"offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"notice\":\"Offer an RCA for escrow management. Must be called before {SubgraphService.acceptUnsignedIndexingAgreement}.\"},\"offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"notice\":\"Offer a pending agreement update for escrow management. Must be called before {SubgraphService.updateUnsignedIndexingAgreement}.\"},\"reconcile(address)\":{\"notice\":\"Reconcile all agreements for an indexer (convenience function).\"},\"reconcileAgreement(bytes16)\":{\"notice\":\"Reconcile a single agreement. Re-reads agreement state from RecurringCollector, recalculates max next claim, and tops up escrow.\"},\"reconcileBatch(bytes16[])\":{\"notice\":\"Reconcile a batch of agreements (operator-controlled batching).\"},\"removeAgreement(bytes16)\":{\"notice\":\"Remove a fully expired agreement from tracking.\"},\"revokeOffer(bytes16)\":{\"notice\":\"Revoke an un-accepted agreement offer. Only for agreements not yet accepted in RecurringCollector.\"}},\"notice\":\"Manages escrow funding for RCAs (Recurring Collection Agreements) using issuance-allocated tokens. Tracks the maximum possible next claim for each managed RCA per indexer and ensures PaymentsEscrow is always funded to cover those maximums. One escrow per (IndexingAgreementManager, RecurringCollector, indexer) covering all RCAs for that indexer managed by this contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol\":\"IIndexingAgreementManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":{\"keccak256\":\"0x3b37aaac35d6566dbed03936b7111f861dfe38f3141064e48ca2336bd9aa9e41\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1dd54449dba3eddebd095213b03c5a3109da1a534271ad1807ddc159cee50081\",\"dweb:/ipfs/QmZCjoFUq4RyhdzswaZgJkSHAbTAHXXn46deVxy69HtQSr\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol\":{\"keccak256\":\"0x0179f05b285cfb0b4a1572d7abd7f430effb3897585e11270cc8a90723be4807\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8687870ef47a95c9aacd915d8a65e1afb17942e9b4f616b54d7e8f0ba3479a4b\",\"dweb:/ipfs/QmcZVyb5yYMs2oUKmMjeJfbj1AQt4wY5VWDY9G5WvsAEiR\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol":{"IIssuanceAllocationAdministration":{"abi":[{"inputs":[],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"distributedBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toBlockNumber","type":"uint256"}],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"distributedBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"forceTargetNoChangeNotificationBlock","outputs":[{"internalType":"uint256","name":"notificationBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSelfMintingEventMode","outputs":[{"internalType":"enum SelfMintingEventMode","name":"mode","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"notifyTarget","outputs":[{"internalType":"bool","name":"notified","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum SelfMintingEventMode","name":"newMode","type":"uint8"}],"name":"setSelfMintingEventMode","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"applied","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"distributePendingIssuance()":"3af5b073","distributePendingIssuance(uint256)":"52c0e18c","forceTargetNoChangeNotificationBlock(address,uint256)":"7c92330b","getSelfMintingEventMode()":"93c911a8","notifyTarget(address)":"4887693c","setDefaultTarget(address)":"697cf322","setDefaultTarget(address,uint256)":"d012a15b","setIssuancePerBlock(uint256)":"1156bdc1","setIssuancePerBlock(uint256,uint256)":"c627b7a4","setSelfMintingEventMode(uint8)":"13a7855d","setTargetAllocation(address,uint256)":"443990fa","setTargetAllocation(address,uint256,uint256)":"647b3682","setTargetAllocation(address,uint256,uint256,uint256)":"c2cb3544"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"distributedBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toBlockNumber\",\"type\":\"uint256\"}],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"distributedBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"forceTargetNoChangeNotificationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"notificationBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"notifyTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"notified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"newMode\",\"type\":\"uint8\"}],\"name\":\"setSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"applied\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"kind\":\"dev\",\"methods\":{\"distributePendingIssuance()\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to current block). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"returns\":{\"distributedBlock\":\"Block number that issuance was distributed up to\"}},\"distributePendingIssuance(uint256)\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to toBlockNumber). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"params\":{\"toBlockNumber\":\"Block number to distribute up to (must be <= block.number and >= lastDistributionBlock)\"},\"returns\":{\"distributedBlock\":\"Block number that issuance was distributed up to\"}},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"details\":\"This can be used to enable notification to be sent again (by setting to a past block)or to prevent notification until a future block (by setting to current or future block).\",\"params\":{\"blockNumber\":\"Block number to set as the lastChangeNotifiedBlock\",\"target\":\"Address of the target to update\"},\"returns\":{\"notificationBlock\":\"The block number that was set\"}},\"getSelfMintingEventMode()\":{\"returns\":{\"mode\":\"The current emission mode\"}},\"notifyTarget(address)\":{\"params\":{\"target\":\"Address of the target to notify\"},\"returns\":{\"notified\":\"True if notification was sent or already sent this block, false otherwise\"}},\"setDefaultTarget(address)\":{\"params\":{\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"applied\":\"True if applied\"}},\"setDefaultTarget(address,uint256)\":{\"details\":\"Governance should explicitly call distributePendingIssuance(blockNumber) first if paused and distribution is not up to minDistributedBlock block. then call this function with the same or lower blockNumber.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"applied\":\"True if applied, false if distribution has not reached minDistributedBlock and therefore the change was not applied\"}},\"setIssuancePerBlock(uint256)\":{\"details\":\"Requires distribution to have reached block.number\",\"params\":{\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"applied\":\"True if the value is applied (including if already the case)\"}},\"setIssuancePerBlock(uint256,uint256)\":{\"details\":\"Governance should explicitly call distributePendingIssuance(blockNumber) first if distribution is behind minDistributedBlock.This allows configuration changes while paused: first call distributePendingIssuance(blockNumber), then call this function with the same or lower blockNumber.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"applied\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock\"}},\"setSelfMintingEventMode(uint8)\":{\"details\":\"None: Skip event emission entirely (lowest gas)Aggregate: Emit single aggregated event for all self-minting (medium gas)PerTarget: Emit events for each target with self-minting (highest gas)Self-minting targets should call getTargetIssuancePerBlock() rather than relying on events\",\"params\":{\"newMode\":\"The new emission mode (None, Aggregate, or PerTarget)\"},\"returns\":{\"applied\":\"True if the mode was set (including if already set to that mode)\"}},\"setTargetAllocation(address,uint256)\":{\"details\":\"This variant sets selfMintingRate to 0 and evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"applied\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256)\":{\"details\":\"This variant sets evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"applied\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"details\":\"Governance should explicitly call distributePendingIssuance(blockNumber) first if paused and not distributed up to minDistributedBlock block.This allows configuration changes while paused: first call distributePendingIssuance(blockNumber), then call this function with the same or lower blockNumber.\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"applied\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock and therefore the change was not applied\"}}},\"title\":\"IIssuanceAllocationAdministration\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"distributePendingIssuance()\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance\"},\"distributePendingIssuance(uint256)\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance up to specified block\"},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"notice\":\"Force set the lastChangeNotifiedBlock for a target to a specific block number\"},\"getSelfMintingEventMode()\":{\"notice\":\"Get the current self-minting event emission mode\"},\"notifyTarget(address)\":{\"notice\":\"Notify a specific target about an upcoming allocation change\"},\"setDefaultTarget(address)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setDefaultTarget(address,uint256)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setIssuancePerBlock(uint256)\":{\"notice\":\"Set the issuance per block.\"},\"setIssuancePerBlock(uint256,uint256)\":{\"notice\":\"Set the issuance per block, requiring distribution has reached at least the specified block\"},\"setSelfMintingEventMode(uint8)\":{\"notice\":\"Set the self-minting event emission mode\"},\"setTargetAllocation(address,uint256)\":{\"notice\":\"Set the allocation for a target with only allocator minting\"},\"setTargetAllocation(address,uint256,uint256)\":{\"notice\":\"Set the allocation for a target with both allocator and self minting\"},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"notice\":\"Set the allocation for a target, provided distribution has reached at least the specified block\"}},\"notice\":\"Interface for administrative operations on the issuance allocator. These functions are typically restricted to the governor role.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol\":\"IIssuanceAllocationAdministration\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol\":{\"keccak256\":\"0xb4d95a9c0ce489cd8df7f047dcbfc19c4a4ec9d05878b2bef4f3abd5fa4e91ef\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7923e80806cfbf8cf9d78c4de574b7e0a6c9f87b81702303b7170adf935ffb5c\",\"dweb:/ipfs/QmVVLV3jzxjS3HoRyg1C9hHcnWqV8ux1QaEwZgFKXrDu1X\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol":{"IIssuanceAllocationData":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetData","outputs":[{"components":[{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"lastChangeNotifiedBlock","type":"uint256"}],"internalType":"struct AllocationTarget","name":"","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getTargetData(address)":"48c3c62e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastChangeNotifiedBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct AllocationTarget\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"This interface provides access to internal allocation target information, primarily useful for operators and off-chain monitoring systems.\",\"kind\":\"dev\",\"methods\":{\"getTargetData(address)\":{\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"AllocationTarget struct containing target information including lastChangeNotifiedBlock\"}}},\"title\":\"IIssuanceAllocationData\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getTargetData(address)\":{\"notice\":\"Get target data for a specific target\"}},\"notice\":\"Interface for querying issuance allocation target data\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol\":\"IIssuanceAllocationData\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol\":{\"keccak256\":\"0x4c01f32e6a019dd5f8c3946b652c947a6cf05f9a4542328b3329a49f06b47181\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0db23b187a7b8b7263a9781f97bef15616df4d66fea2dc72541e6592bc18d73\",\"dweb:/ipfs/QmdJZhN1o8yc2yQjPKZrgySCdMUF6UeoprEbyvKtYTmnyw\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol":{"IIssuanceAllocationDistribution":{"abi":[{"inputs":[],"name":"distributeIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetIssuancePerBlock","outputs":[{"components":[{"internalType":"uint256","name":"allocatorIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"allocatorIssuanceBlockAppliedTo","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceBlockAppliedTo","type":"uint256"}],"internalType":"struct TargetIssuancePerBlock","name":"targetIssuance","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"distributeIssuance()":"49bdfcb0","getTargetIssuancePerBlock(address)":"3067cb4c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"distributeIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetIssuancePerBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceBlockAppliedTo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceBlockAppliedTo\",\"type\":\"uint256\"}],\"internalType\":\"struct TargetIssuancePerBlock\",\"name\":\"targetIssuance\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"kind\":\"dev\",\"methods\":{\"distributeIssuance()\":{\"details\":\"When the contract is paused, no issuance is distributed and lastIssuanceBlock is not updated.This function is permissionless and can be called by anyone, including targets as part of their normal flow.\",\"returns\":{\"_0\":\"Block number that issuance has been distributed to. That will normally be the current block number, unless the contract is paused.\"}},\"getTargetIssuancePerBlock(address)\":{\"details\":\"This function does not revert when paused, instead the caller is expected to correctly read and apply the information provided.Targets should check allocatorIssuanceBlockAppliedTo and selfIssuanceBlockAppliedTo - if either is not the current block, that type of issuance is paused for that target.Targets should not check the allocator's pause state directly, but rely on the blockAppliedTo fields to determine if issuance is paused.\",\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"targetIssuance\":\"TargetIssuancePerBlock struct containing allocatorIssuanceBlockAppliedTo, selfIssuanceBlockAppliedTo, allocatorIssuanceRate, and selfIssuanceRate\"}}},\"title\":\"IIssuanceAllocationDistribution\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"distributeIssuance()\":{\"notice\":\"Distribute issuance to allocated non-self-minting targets.\"},\"getTargetIssuancePerBlock(address)\":{\"notice\":\"Target issuance per block information\"}},\"notice\":\"Interface for distribution and target interaction with the issuance allocator. This is the minimal interface that targets need to interact with the allocator.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol\":\"IIssuanceAllocationDistribution\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol\":{\"keccak256\":\"0x6927a5d307ac841444e03af363c41c7ba032693074614f0e3ee1e25c6f8789e1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://906d824aa38a6e6daa83f34cdfc1d9b0a9ff5f895b4a2083b9a7b7d5d8285397\",\"dweb:/ipfs/QmZCCSW7Nxtf3tLPnHazMhsyDPBBiAHqfzceGdb6CFNNEJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol":{"IIssuanceAllocationStatus":{"abi":[{"inputs":[],"name":"getDistributionState","outputs":[{"components":[{"internalType":"uint256","name":"lastDistributionBlock","type":"uint256"},{"internalType":"uint256","name":"lastSelfMintingBlock","type":"uint256"},{"internalType":"uint256","name":"selfMintingOffset","type":"uint256"}],"internalType":"struct DistributionState","name":"distributionState","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIssuancePerBlock","outputs":[{"internalType":"uint256","name":"issuancePerBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"allocation","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTargetAt","outputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargetCount","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargets","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"allocation","type":"tuple"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getDistributionState()":"ee56977e","getIssuancePerBlock()":"79d5fc54","getTargetAllocation(address)":"84c48422","getTargetAt(uint256)":"87ee921c","getTargetCount()":"4a1293b7","getTargets()":"63fe3b56","getTotalAllocation()":"15d3b5d8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getDistributionState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastDistributionBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastSelfMintingBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingOffset\",\"type\":\"uint256\"}],\"internalType\":\"struct DistributionState\",\"name\":\"distributionState\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIssuancePerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"issuancePerBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"allocation\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTargetAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"allocation\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"kind\":\"dev\",\"methods\":{\"getDistributionState()\":{\"returns\":{\"distributionState\":\"DistributionState struct containing block tracking and accumulation info\"}},\"getIssuancePerBlock()\":{\"returns\":{\"issuancePerBlock\":\"The current issuance per block\"}},\"getTargetAllocation(address)\":{\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"allocation\":\"Allocation struct containing total, allocator-minting, and self-minting allocations\"}},\"getTargetAt(uint256)\":{\"params\":{\"index\":\"The index of the target address to retrieve\"},\"returns\":{\"target\":\"The target address at the specified index\"}},\"getTargetCount()\":{\"returns\":{\"count\":\"The total number of allocated targets\"}},\"getTargets()\":{\"returns\":{\"targets\":\"Array of target addresses\"}},\"getTotalAllocation()\":{\"returns\":{\"allocation\":\"Allocation struct containing total, allocator-minting, and self-minting allocations across all targets\"}}},\"title\":\"IIssuanceAllocationStatus\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getDistributionState()\":{\"notice\":\"Get pending issuance distribution state\"},\"getIssuancePerBlock()\":{\"notice\":\"Get the current issuance per block\"},\"getTargetAllocation(address)\":{\"notice\":\"Get the current allocation for a target\"},\"getTargetAt(uint256)\":{\"notice\":\"Get a specific allocated target address by index\"},\"getTargetCount()\":{\"notice\":\"Get the number of allocated targets\"},\"getTargets()\":{\"notice\":\"Get all allocated target addresses\"},\"getTotalAllocation()\":{\"notice\":\"Get the current global allocation totals\"}},\"notice\":\"Interface for read-only status and query operations on the issuance allocator. All functions in this interface are view functions that provide information about the current state of the allocator, including allocations and system status.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol\":\"IIssuanceAllocationStatus\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol\":{\"keccak256\":\"0xdeeda74ab0868b7dc38bb7719c09394fe4d652532978dfdbb72320486190bb29\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7bffd43fb18d81fea035b60f11a450806bef79221c22b92be72e9d23d9920f89\",\"dweb:/ipfs/QmbSBpkAhYb5Zm3ZPDPaHrqupTXu1sP2SY99NUGgvYeGXt\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol":{"IIssuanceTarget":{"abi":[{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"beforeIssuanceAllocationChange()":"3df8d682","setIssuanceAllocator(address)":"931c0ac1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"events\":{\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"setIssuanceAllocator(address)\":{\"details\":\"This function facilitates upgrades by providing a standard way for targets to change their allocator. Implementations can define their own access control.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}}},\"title\":\"IIssuanceTarget\",\"version\":1},\"userdoc\":{\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"}},\"kind\":\"user\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"}},\"notice\":\"Interface for contracts that receive issuance from an issuance allocator\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":\"IIssuanceTarget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol":{"ISendTokens":{"abi":[{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"sendTokens(address,uint256)":"05ab421d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"This interface provides a simple token transfer capability for contracts that need to distribute or send tokens programmatically.\",\"kind\":\"dev\",\"methods\":{\"sendTokens(address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to send\",\"to\":\"The address to send tokens to\"}}},\"title\":\"ISendTokens\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"sendTokens(address,uint256)\":{\"notice\":\"Send tokens to a specified address\"}},\"notice\":\"Interface for contracts that can send tokens to arbitrary addresses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol\":\"ISendTokens\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol\":{\"keccak256\":\"0xa911740dd57395ffdc478c2d83c60d881fee0f521d25ec99619939ff545cfa13\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://62a95fe4acbbb29cd05a89993fb4cce9126430386db8d8780404ba7e04bf0c08\",\"dweb:/ipfs/QmURXpnJrzBzSdZPq11iizFNwm7bwxvhFGuXC6d2GPkufM\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol":{"IPausableControl":{"abi":[{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"pause()":"8456cb59","paused()":"5c975abb","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"This interface extends standard pausable functionality with explicit pause and unpause functions. Contracts implementing this interface allow authorized accounts to pause and unpause contract operations. Events (Paused, Unpaused) are inherited from OpenZeppelin's PausableUpgradeable.\",\"kind\":\"dev\",\"methods\":{\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"title\":\"IPausableControl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"Interface for contracts that support pause/unpause functionality\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":\"IPausableControl\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol":{"ISubgraphService":{"abi":[{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"SubgraphServiceAllocationIsAltruistic","type":"error"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"address","name":"allocationId","type":"address"}],"name":"SubgraphServiceAllocationNotAuthorized","type":"error"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"SubgraphServiceCannotForceCloseAllocation","type":"error"},{"inputs":[],"name":"SubgraphServiceEmptyGeohash","type":"error"},{"inputs":[],"name":"SubgraphServiceEmptyUrl","type":"error"},{"inputs":[{"internalType":"uint256","name":"balanceBefore","type":"uint256"},{"internalType":"uint256","name":"balanceAfter","type":"uint256"}],"name":"SubgraphServiceInconsistentCollection","type":"error"},{"inputs":[{"internalType":"address","name":"providedIndexer","type":"address"},{"internalType":"address","name":"expectedIndexer","type":"address"}],"name":"SubgraphServiceIndexerMismatch","type":"error"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"SubgraphServiceIndexerNotRegistered","type":"error"},{"inputs":[{"internalType":"bytes32","name":"collectionId","type":"bytes32"}],"name":"SubgraphServiceInvalidCollectionId","type":"error"},{"inputs":[{"internalType":"uint256","name":"curationCut","type":"uint256"}],"name":"SubgraphServiceInvalidCurationCut","type":"error"},{"inputs":[{"internalType":"uint256","name":"indexingFeesCut","type":"uint256"}],"name":"SubgraphServiceInvalidIndexingFeesCut","type":"error"},{"inputs":[{"internalType":"enum IGraphPayments.PaymentTypes","name":"paymentType","type":"uint8"}],"name":"SubgraphServiceInvalidPaymentType","type":"error"},{"inputs":[{"internalType":"address","name":"ravIndexer","type":"address"},{"internalType":"address","name":"allocationIndexer","type":"address"}],"name":"SubgraphServiceInvalidRAV","type":"error"},{"inputs":[],"name":"SubgraphServiceInvalidZeroStakeToFeesRatio","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"curationCut","type":"uint256"}],"name":"CurationCutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"indexingFeesCut","type":"uint256"}],"name":"IndexingFeesCutSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":true,"internalType":"address","name":"paymentsDestination","type":"address"}],"name":"PaymentsDestinationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"}],"name":"ProvisionPendingParametersAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"allocationId","type":"address"},{"indexed":false,"internalType":"bytes32","name":"subgraphDeploymentId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"tokensCollected","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensCurators","type":"uint256"}],"name":"QueryFeesCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":true,"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServicePaymentCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceProviderRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ServiceProviderSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"serviceProvider","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ServiceStopped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ratio","type":"uint256"}],"name":"StakeToFeesRatioSet","type":"event"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"},{"components":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCA","name":"signedRCA","type":"tuple"}],"name":"acceptIndexingAgreement","outputs":[{"internalType":"bytes16","name":"","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"acceptProvisionPendingParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"},{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"acceptUnsignedIndexingAgreement","outputs":[{"internalType":"bytes16","name":"","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"cancelIndexingAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"cancelIndexingAgreementByPayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"closeStaleAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"enum IGraphPayments.PaymentTypes","name":"feeType","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"curationFeesCut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"address","name":"allocationId","type":"address"}],"name":"encodeAllocationProof","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"getAllocation","outputs":[{"components":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"bytes32","name":"subgraphDeploymentId","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"closedAt","type":"uint256"},{"internalType":"uint256","name":"lastPOIPresentedAt","type":"uint256"},{"internalType":"uint256","name":"accRewardsPerAllocatedToken","type":"uint256"},{"internalType":"uint256","name":"accRewardsPending","type":"uint256"},{"internalType":"uint256","name":"createdAtEpoch","type":"uint256"}],"internalType":"struct IAllocation.State","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCuration","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDelegationRatio","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDisputeManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGraphTallyCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getIndexingAgreement","outputs":[{"components":[{"components":[{"internalType":"address","name":"allocationId","type":"address"},{"internalType":"enum IIndexingAgreement.IndexingAgreementVersion","name":"version","type":"uint8"}],"internalType":"struct IIndexingAgreement.State","name":"agreement","type":"tuple"},{"components":[{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint64","name":"acceptedAt","type":"uint64"},{"internalType":"uint64","name":"lastCollectionAt","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"updateNonce","type":"uint32"},{"internalType":"uint64","name":"canceledAt","type":"uint64"},{"internalType":"enum IRecurringCollector.AgreementState","name":"state","type":"uint8"}],"internalType":"struct IRecurringCollector.AgreementData","name":"collectorAgreement","type":"tuple"}],"internalType":"struct IIndexingAgreement.AgreementWrapper","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"getLegacyAllocation","outputs":[{"components":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"bytes32","name":"subgraphDeploymentId","type":"bytes32"}],"internalType":"struct ILegacyAllocation.State","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProvisionTokensRange","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getThawingPeriodRange","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVerifierCutRange","outputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"indexers","outputs":[{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"geoHash","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"minimumProvisionTokens","type":"uint256"},{"internalType":"uint32","name":"maximumDelegationRatio","type":"uint32"},{"internalType":"uint256","name":"stakeToFeesRatio","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"isOverAllocated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"paymentsDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numClaimsToRelease","type":"uint256"}],"name":"releaseStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"address","name":"allocationId","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"resizeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"curationCut","type":"uint256"}],"name":"setCurationCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"delegationRatio","type":"uint32"}],"name":"setDelegationRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"indexingFeesCut","type":"uint256"}],"name":"setIndexingFeesCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxPoiStaleness","type":"uint256"}],"name":"setMaxPOIStaleness","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minimumProvisionTokens","type":"uint256"}],"name":"setMinimumProvisionTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pauseGuardian","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setPauseGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPaymentsDestination","type":"address"}],"name":"setPaymentsDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newStakeToFeesRatio","type":"uint256"}],"name":"setStakeToFeesRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToFeesRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"startService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"stopService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"components":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IRecurringCollector.SignedRCAU","name":"signedRCAU","type":"tuple"}],"name":"updateIndexingAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"},{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"updateUnsignedIndexingAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptIndexingAgreement(address,((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))":"0b4baec7","acceptProvisionPendingParameters(address,bytes)":"ce0fc0cc","acceptUnsignedIndexingAgreement(address,(uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))":"7cff6f63","cancelIndexingAgreement(address,bytes16)":"8977a289","cancelIndexingAgreementByPayer(bytes16)":"e5920be9","closeStaleAllocation(address)":"ec9c218d","collect(address,uint8,bytes)":"b15d2a2c","curationFeesCut()":"138dea08","encodeAllocationProof(address,address)":"ce56c98b","getAllocation(address)":"0e022923","getCuration()":"c0f47497","getDelegationRatio()":"1ebb7c30","getDisputeManager()":"db9bee46","getGraphTallyCollector()":"ebf6ddaf","getIndexingAgreement(bytes16)":"faf2d546","getLegacyAllocation(address)":"6d9a3951","getProvisionTokensRange()":"819ba366","getThawingPeriodRange()":"71ce020a","getVerifierCutRange()":"482468b7","indexers(address)":"4f793cdc","initialize(address,uint256,uint32,uint256)":"c84a5ef3","isOverAllocated(address)":"ba38f67d","paymentsDestination(address)":"07e736d8","register(address,bytes)":"24b8fbf6","releaseStake(uint256)":"45f54485","resizeAllocation(address,address,uint256)":"81e777a7","setCurationCut(uint256)":"7e89bac3","setDelegationRatio(uint32)":"1dd42f60","setIndexingFeesCut(uint256)":"df4a0c2c","setMaxPOIStaleness(uint256)":"7aa31bce","setMinimumProvisionTokens(uint256)":"832bc923","setPauseGuardian(address,bool)":"35577962","setPaymentsDestination(address)":"6ccec5b8","setStakeToFeesRatio(uint256)":"e6f50054","slash(address,bytes)":"cb8347fe","stakeToFeesRatio()":"d07a7a84","startService(address,bytes)":"dedf6726","stopService(address,bytes)":"8180083b","updateIndexingAgreement(address,((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))":"d8d497c5","updateUnsignedIndexingAgreement(address,(bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))":"1d46b2ff"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationIsAltruistic\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceCannotForceCloseAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyGeohash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyUrl\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInconsistentCollection\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providedIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"collectionId\",\"type\":\"bytes32\"}],\"name\":\"SubgraphServiceInvalidCollectionId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInvalidCurationCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"indexingFeesCut\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInvalidIndexingFeesCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"}],\"name\":\"SubgraphServiceInvalidPaymentType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ravIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceInvalidRAV\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceInvalidZeroStakeToFeesRatio\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"CurationCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"indexingFeesCut\",\"type\":\"uint256\"}],\"name\":\"IndexingFeesCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"paymentsDestination\",\"type\":\"address\"}],\"name\":\"PaymentsDestinationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCollected\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCurators\",\"type\":\"uint256\"}],\"name\":\"QueryFeesCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"StakeToFeesRatioSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCA\",\"name\":\"signedRCA\",\"type\":\"tuple\"}],\"name\":\"acceptIndexingAgreement\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"}],\"name\":\"acceptUnsignedIndexingAgreement\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"cancelIndexingAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"cancelIndexingAgreementByPayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"closeStaleAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"curationFeesCut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"encodeAllocationProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtEpoch\",\"type\":\"uint256\"}],\"internalType\":\"struct IAllocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCuration\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDisputeManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGraphTallyCollector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getIndexingAgreement\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"enum IIndexingAgreement.IndexingAgreementVersion\",\"name\":\"version\",\"type\":\"uint8\"}],\"internalType\":\"struct IIndexingAgreement.State\",\"name\":\"agreement\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"acceptedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastCollectionAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"updateNonce\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"canceledAt\",\"type\":\"uint64\"},{\"internalType\":\"enum IRecurringCollector.AgreementState\",\"name\":\"state\",\"type\":\"uint8\"}],\"internalType\":\"struct IRecurringCollector.AgreementData\",\"name\":\"collectorAgreement\",\"type\":\"tuple\"}],\"internalType\":\"struct IIndexingAgreement.AgreementWrapper\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getLegacyAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"internalType\":\"struct ILegacyAllocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"indexers\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"geoHash\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minimumProvisionTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maximumDelegationRatio\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"stakeToFeesRatio\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"isOverAllocated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"paymentsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"resizeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"setCurationCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"delegationRatio\",\"type\":\"uint32\"}],\"name\":\"setDelegationRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"indexingFeesCut\",\"type\":\"uint256\"}],\"name\":\"setIndexingFeesCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaxPoiStaleness\",\"type\":\"uint256\"}],\"name\":\"setMaxPOIStaleness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumProvisionTokens\",\"type\":\"uint256\"}],\"name\":\"setMinimumProvisionTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauseGuardian\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setPauseGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPaymentsDestination\",\"type\":\"address\"}],\"name\":\"setPaymentsDestination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStakeToFeesRatio\",\"type\":\"uint256\"}],\"name\":\"setStakeToFeesRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToFeesRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.SignedRCAU\",\"name\":\"signedRCAU\",\"type\":\"tuple\"}],\"name\":\"updateIndexingAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"}],\"name\":\"updateUnsignedIndexingAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"details\":\"This interface extends {IDataServiceFees} and {IDataService}.\",\"errors\":{\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"params\":{\"allocationId\":\"The id of the allocation.\",\"indexer\":\"The address of the expected indexer.\"}}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceInconsistentCollection(uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The contract GRT balance after the collection\",\"balanceBefore\":\"The contract GRT balance before the collection\"}}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"params\":{\"expectedIndexer\":\"The address of the expected indexer.\",\"providedIndexer\":\"The address of the provided indexer.\"}}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"params\":{\"indexer\":\"The address of the indexer that is not registered\"}}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"params\":{\"collectionId\":\"The collectionId\"}}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"params\":{\"curationCut\":\"The curation cut value\"}}],\"SubgraphServiceInvalidIndexingFeesCut(uint256)\":[{\"params\":{\"indexingFeesCut\":\"The indexing fees cut value\"}}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"params\":{\"paymentType\":\"The payment type that is not supported\"}}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"params\":{\"allocationIndexer\":\"The address of the allocation indexer\",\"ravIndexer\":\"The address of the RAV indexer\"}}]},\"events\":{\"CurationCutSet(uint256)\":{\"params\":{\"curationCut\":\"The curation cut\"}},\"IndexingFeesCutSet(uint256)\":{\"params\":{\"indexingFeesCut\":\"The indexing fees cut\"}},\"PaymentsDestinationSet(address,address)\":{\"params\":{\"indexer\":\"The address of the indexer\",\"paymentsDestination\":\"The address where payments should be sent\"}},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"QueryFeesCollected(address,address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"payer\":\"The address paying for the query fees\",\"serviceProvider\":\"The address of the service provider\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokensCollected\":\"The amount of tokens collected\",\"tokensCurators\":\"The amount of tokens curators receive\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"StakeToFeesRatioSet(uint256)\":{\"params\":{\"ratio\":\"The stake to fees ratio\"}}},\"kind\":\"dev\",\"methods\":{\"acceptIndexingAgreement(address,((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"signedRCA\":\"The signed recurring collector agreement (RCA) that the indexer accepts\"},\"returns\":{\"_0\":\"agreementId The ID of the accepted indexing agreement\"}},\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"acceptUnsignedIndexingAgreement(address,(uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"details\":\"The payer must implement {IContractApprover} and authorize the RCA hash.\",\"params\":{\"allocationId\":\"The id of the allocation\",\"rca\":\"The recurring collection agreement parameters\"},\"returns\":{\"_0\":\"agreementId The ID of the accepted indexing agreement\"}},\"cancelIndexingAgreement(address,bytes16)\":{\"params\":{\"agreementId\":\"The id of the indexing agreement\",\"indexer\":\"The address of the indexer\"}},\"cancelIndexingAgreementByPayer(bytes16)\":{\"params\":{\"agreementId\":\"The id of the indexing agreement\"}},\"closeStaleAllocation(address)\":{\"details\":\"This function can be permissionlessly called when the allocation is stale. This ensures that rewards for other allocations are not diluted by an inactive allocation. Requirements: - Allocation must exist and be open - Allocation must be stale - Allocation cannot be altruistic Emits a {AllocationClosed} event.\",\"params\":{\"allocationId\":\"The id of the allocation\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}. Emits a {ServicePaymentCollected} event. NOTE: Data services that are vetted by the Graph Council might qualify for a portion of protocol issuance to cover for these payments. In this case, the funds are taken by interacting with the rewards manager contract instead of the {GraphPayments} contract.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"curationFeesCut()\":{\"returns\":{\"_0\":\"The curation fees cut\"}},\"encodeAllocationProof(address,address)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\"},\"returns\":{\"_0\":\"The encoded allocation proof\"}},\"getAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The allocation details\"}},\"getCuration()\":{\"returns\":{\"_0\":\"The address of the curation contract\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getDisputeManager()\":{\"returns\":{\"_0\":\"The address of the dispute manager\"}},\"getGraphTallyCollector()\":{\"returns\":{\"_0\":\"The address of the graph tally collector\"}},\"getIndexingAgreement(bytes16)\":{\"params\":{\"agreementId\":\"The id of the indexing agreement\"},\"returns\":{\"_0\":\"The indexing agreement details\"}},\"getLegacyAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"The legacy allocation details\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"indexers(address)\":{\"details\":\"Note that this storage getter actually returns a {Indexer} struct, but ethers v6 is not      good at dealing with dynamic types on return values.\",\"params\":{\"indexer\":\"The address of the indexer\"},\"returns\":{\"geoHash\":\"The indexer's geo location, expressed as a geo hash\",\"url\":\"The URL where the indexer can be reached at for queries\"}},\"initialize(address,uint256,uint32,uint256)\":{\"details\":\"The thawingPeriod and verifierCut ranges are not set here because they are variables on the DisputeManager. We use the {ProvisionManager} overrideable getters to get the ranges.\",\"params\":{\"maximumDelegationRatio\":\"The maximum delegation ratio allowed for an allocation\",\"minimumProvisionTokens\":\"The minimum amount of provisioned tokens required to create an allocation\",\"owner\":\"The owner of the contract\",\"stakeToFeesRatio\":\"The ratio of stake to fees to lock when collecting query fees\"}},\"isOverAllocated(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"True if the indexer is over-allocated, false otherwise\"}},\"paymentsDestination(address)\":{\"params\":{\"indexer\":\"The address of the indexer\"},\"returns\":{\"_0\":\"The payments destination\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"releaseStake(uint256)\":{\"details\":\"This function is only meant to be called if the service provider has enough stake claims that releasing them all at once would exceed the block gas limit.This function can be overriden and/or disabled.Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\",\"params\":{\"numClaimsToRelease\":\"Amount of stake claims to process. If 0, all stake claims are processed.\"}},\"resizeAllocation(address,address,uint256)\":{\"details\":\"Requirements: - The indexer must be registered - The provision must be valid according to the subgraph service rules - `tokens` must be different from the current allocation size - The indexer must have enough available tokens to allocate if they are upsizing the allocation Emits a {AllocationResized} event. See {AllocationManager-_resizeAllocation} for more details.\",\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"tokens\":\"The new amount of tokens in the allocation\"}},\"setCurationCut(uint256)\":{\"details\":\"Emits a {CuratorCutSet} event\",\"params\":{\"curationCut\":\"The curation cut for the payment type\"}},\"setDelegationRatio(uint32)\":{\"params\":{\"delegationRatio\":\"The delegation ratio\"}},\"setIndexingFeesCut(uint256)\":{\"details\":\"Emits a {IndexingFeesCutSet} event\",\"params\":{\"indexingFeesCut\":\"The indexing fees cut for the payment type\"}},\"setMaxPOIStaleness(uint256)\":{\"params\":{\"newMaxPoiStaleness\":\"The max POI staleness in seconds\"}},\"setMinimumProvisionTokens(uint256)\":{\"params\":{\"minimumProvisionTokens\":\"The minimum amount of provisioned tokens required to create an allocation\"}},\"setPauseGuardian(address,bool)\":{\"params\":{\"allowed\":\"True if the pause guardian is allowed to pause the contract, false otherwise\",\"pauseGuardian\":\"The address of the pause guardian\"}},\"setPaymentsDestination(address)\":{\"details\":\"Emits a {PaymentsDestinationSet} event\",\"params\":{\"newPaymentsDestination\":\"The address where payments should be sent\"}},\"setStakeToFeesRatio(uint256)\":{\"params\":{\"newStakeToFeesRatio\":\"The stake to fees ratio\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stakeToFeesRatio()\":{\"returns\":{\"_0\":\"The stake to fees ratio\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"updateIndexingAgreement(address,((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"params\":{\"indexer\":\"The address of the indexer\",\"signedRCAU\":\"The signed recurring collector agreement update (RCAU) that the indexer accepts\"}},\"updateUnsignedIndexingAgreement(address,(bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"details\":\"The payer must implement {IContractApprover} and authorize the RCAU hash.\",\"params\":{\"indexer\":\"The address of the indexer\",\"rcau\":\"The recurring collector agreement update to apply\"}}},\"title\":\"Interface for the {SubgraphService} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"notice\":\"Thrown when trying to force close an altruistic allocation\"}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the indexer in the allocation state does not match the expected indexer.\"}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"notice\":\"Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\"}],\"SubgraphServiceEmptyGeohash()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty geohash\"}],\"SubgraphServiceEmptyUrl()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty URL\"}],\"SubgraphServiceInconsistentCollection(uint256,uint256)\":[{\"notice\":\"Thrown when the contract GRT balance is inconsistent after collecting from Graph Payments\"}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"notice\":\"@notice Thrown when the service provider does not match the expected indexer.\"}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"notice\":\"Thrown when an indexer tries to perform an operation but they are not registered\"}],\"SubgraphServiceInvalidCollectionId(bytes32)\":[{\"notice\":\"Thrown when collectionId is not a valid address\"}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"notice\":\"Thrown when trying to set a curation cut that is not a valid PPM value\"}],\"SubgraphServiceInvalidIndexingFeesCut(uint256)\":[{\"notice\":\"Thrown when trying to set an indexing fees cut that is not a valid PPM value\"}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"notice\":\"Thrown when an indexer tries to collect fees for an unsupported payment type\"}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"notice\":\"Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\"}],\"SubgraphServiceInvalidZeroStakeToFeesRatio()\":[{\"notice\":\"Thrown when trying to set stake to fees ratio to zero\"}]},\"events\":{\"CurationCutSet(uint256)\":{\"notice\":\"Emitted when curator cuts are set\"},\"IndexingFeesCutSet(uint256)\":{\"notice\":\"Emitted when indexing fees cut is set\"},\"PaymentsDestinationSet(address,address)\":{\"notice\":\"Emitted when an indexer sets a new payments destination\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"QueryFeesCollected(address,address,address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a subgraph service collects query fees from Graph Payments\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"StakeToFeesRatioSet(uint256)\":{\"notice\":\"Emitted when the stake to fees ratio is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptIndexingAgreement(address,((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes),bytes))\":{\"notice\":\"Accept an indexing agreement.\"},\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"acceptUnsignedIndexingAgreement(address,(uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"notice\":\"Accept an indexing agreement where the payer is a contract.\"},\"cancelIndexingAgreement(address,bytes16)\":{\"notice\":\"Cancel an indexing agreement by indexer / operator.\"},\"cancelIndexingAgreementByPayer(bytes16)\":{\"notice\":\"Cancel an indexing agreement by payer / signer.\"},\"closeStaleAllocation(address)\":{\"notice\":\"Force close a stale allocation\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"curationFeesCut()\":{\"notice\":\"Gets the curation fees cut\"},\"encodeAllocationProof(address,address)\":{\"notice\":\"Encodes the allocation proof for EIP712 signing\"},\"getAllocation(address)\":{\"notice\":\"Gets the details of an allocation For legacy allocations use {getLegacyAllocation}\"},\"getCuration()\":{\"notice\":\"Gets the address of the curation contract\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getDisputeManager()\":{\"notice\":\"Gets the address of the dispute manager\"},\"getGraphTallyCollector()\":{\"notice\":\"Gets the address of the graph tally collector\"},\"getIndexingAgreement(bytes16)\":{\"notice\":\"Get the indexing agreement for a given agreement ID.\"},\"getLegacyAllocation(address)\":{\"notice\":\"Gets the details of a legacy allocation For non-legacy allocations use {getAllocation}\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"indexers(address)\":{\"notice\":\"Gets the indexer details\"},\"initialize(address,uint256,uint32,uint256)\":{\"notice\":\"Initialize the contract\"},\"isOverAllocated(address)\":{\"notice\":\"Checks if an indexer is over-allocated\"},\"paymentsDestination(address)\":{\"notice\":\"Gets the payments destination\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"releaseStake(uint256)\":{\"notice\":\"Releases expired stake claims for the caller.\"},\"resizeAllocation(address,address,uint256)\":{\"notice\":\"Change the amount of tokens in an allocation\"},\"setCurationCut(uint256)\":{\"notice\":\"Sets the curators payment cut for query fees\"},\"setDelegationRatio(uint32)\":{\"notice\":\"Sets the delegation ratio\"},\"setIndexingFeesCut(uint256)\":{\"notice\":\"Sets the data service payment cut for indexing fees\"},\"setMaxPOIStaleness(uint256)\":{\"notice\":\"Sets the max POI staleness See {AllocationManagerV1Storage-maxPOIStaleness} for more details.\"},\"setMinimumProvisionTokens(uint256)\":{\"notice\":\"Sets the minimum amount of provisioned tokens required to create an allocation\"},\"setPauseGuardian(address,bool)\":{\"notice\":\"Sets a pause guardian\"},\"setPaymentsDestination(address)\":{\"notice\":\"Sets the payments destination for an indexer to receive payments\"},\"setStakeToFeesRatio(uint256)\":{\"notice\":\"Sets the stake to fees ratio\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"stakeToFeesRatio()\":{\"notice\":\"Gets the stake to fees ratio\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"},\"updateIndexingAgreement(address,((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes),bytes))\":{\"notice\":\"Update an indexing agreement.\"},\"updateUnsignedIndexingAgreement(address,(bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"notice\":\"Update an indexing agreement where the payer is a contract.\"}},\"notice\":\"The Subgraph Service is a data service built on top of Graph Horizon that supports the use case of subgraph indexing and querying. The {SubgraphService} contract implements the flows described in the Data Service framework to allow indexers to register as subgraph service providers, create allocations to signal their commitment to index a subgraph, and collect fees for indexing and querying services.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol\":\"ISubgraphService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol\":{\"keccak256\":\"0x24a4b7bf75c66404683c66cb8ed2d456f80a779617eb162794db9cf17bd58f19\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://58a651ccf814c460ce3581cf24de0dcdd8f734b71b1980246608f38aca84ac09\",\"dweb:/ipfs/QmTvyZMaQWpbTYZfjrVp5ZbZMb6NTJGfadyhqNPLCaQL59\"]},\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol\":{\"keccak256\":\"0x9416312dc83a2473adf6d05f4ab4eca44f7e69df3617205b20e4eb2c531750bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d040ed6e1a3b7492e24ef33f296fc4d111817d097bf826b5a86887eade91bf7d\",\"dweb:/ipfs/QmUE7NcxHdeSYMuVFiSDNqzExrSjyBX8mWXEnPV5RiJ3BR\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":{\"keccak256\":\"0x3b37aaac35d6566dbed03936b7111f861dfe38f3141064e48ca2336bd9aa9e41\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1dd54449dba3eddebd095213b03c5a3109da1a534271ad1807ddc159cee50081\",\"dweb:/ipfs/QmZCjoFUq4RyhdzswaZgJkSHAbTAHXXn46deVxy69HtQSr\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol\":{\"keccak256\":\"0xf1e5e4b8caa24a4984b31a0d40edee96856d8166cb8d57dd9214b587673d85e5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a71ccc9bef8d42d4414374bef95cb3d056879feab86299007e246de7bd1c67d7\",\"dweb:/ipfs/QmQ1p44Lu8Jk8YTw6edJJN6nJ3AynH23ZxTSQKyAZsLuZW\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol\":{\"keccak256\":\"0x4642a282ea1efe3a60266c9566a179ff9f4b52c9e9a9c7a0e56b3bc2fd064e7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c581b0d9d4503cf8090083bca35574b200aea9da1babf447df4e65eb036ca46a\",\"dweb:/ipfs/QmfF1JSFXxHnEuD77vMgTt6cRzqiHovxwQaA2QKP9ngPxB\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol\":{\"keccak256\":\"0xb410232626b374d90b0fc43f42d9446df1bf611c3a65604cceee1af71ae9559d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b59be383b1af86cdb8071d6040fee92fbfef0ce5c5be14a6cdba9efcbc63a4c\",\"dweb:/ipfs/QmPg4Jjqj88HU3oHCEobgjSuxS9nyCUZyqke4ssAKT55vP\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol\":{\"keccak256\":\"0xd82b37b71dd7d7d039b017933e34c57a5617bdaccfcc1ff38b50b25d7ee59696\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://245da20f114a9ecbf3a42dc67705bbcbe41145cffe25aba1d83b4b3056a3c557\",\"dweb:/ipfs/QmSj3kL31LufsrvhcxV5DVJhuQAsyBknKuoTPKfutT7Vm2\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol":{"IAllocation":{"abi":[{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"AllocationAlreadyExists","type":"error"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"},{"internalType":"uint256","name":"closedAt","type":"uint256"}],"name":"AllocationClosed","type":"error"},{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"AllocationDoesNotExist","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"name\":\"AllocationClosed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationDoesNotExist\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"AllocationAlreadyExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"AllocationClosed(address,uint256)\":[{\"params\":{\"allocationId\":\"The allocation id\",\"closedAt\":\"The timestamp when the allocation was closed\"}}],\"AllocationDoesNotExist(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Interface for the {Allocation} library contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"AllocationAlreadyExists(address)\":[{\"notice\":\"Thrown when attempting to create an allocation with an existing id\"}],\"AllocationClosed(address,uint256)\":[{\"notice\":\"Thrown when trying to perform an operation on a closed allocation\"}],\"AllocationDoesNotExist(address)\":[{\"notice\":\"Thrown when trying to perform an operation on a non-existent allocation\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for managing allocation data and operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol\":\"IAllocation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol\":{\"keccak256\":\"0x4642a282ea1efe3a60266c9566a179ff9f4b52c9e9a9c7a0e56b3bc2fd064e7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c581b0d9d4503cf8090083bca35574b200aea9da1babf447df4e65eb036ca46a\",\"dweb:/ipfs/QmfF1JSFXxHnEuD77vMgTt6cRzqiHovxwQaA2QKP9ngPxB\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol":{"IIndexingAgreement":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Interface for the {IndexingAgreement} library contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for managing indexing agreement data and operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol\":\"IIndexingAgreement\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":{\"keccak256\":\"0x3b37aaac35d6566dbed03936b7111f861dfe38f3141064e48ca2336bd9aa9e41\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1dd54449dba3eddebd095213b03c5a3109da1a534271ad1807ddc159cee50081\",\"dweb:/ipfs/QmZCjoFUq4RyhdzswaZgJkSHAbTAHXXn46deVxy69HtQSr\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol\":{\"keccak256\":\"0xb410232626b374d90b0fc43f42d9446df1bf611c3a65604cceee1af71ae9559d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b59be383b1af86cdb8071d6040fee92fbfef0ce5c5be14a6cdba9efcbc63a4c\",\"dweb:/ipfs/QmPg4Jjqj88HU3oHCEobgjSuxS9nyCUZyqke4ssAKT55vP\"]}},\"version\":1}"}},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol":{"ILegacyAllocation":{"abi":[{"inputs":[{"internalType":"address","name":"allocationId","type":"address"}],"name":"LegacyAllocationAlreadyExists","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationAlreadyExists\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"LegacyAllocationAlreadyExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Interface for the {LegacyAllocation} library contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"LegacyAllocationAlreadyExists(address)\":[{\"notice\":\"Thrown when attempting to create an allocation with an existing legacy id\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for managing legacy allocation data\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol\":\"ILegacyAllocation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol\":{\"keccak256\":\"0xd82b37b71dd7d7d039b017933e34c57a5617bdaccfcc1ff38b50b25d7ee59696\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://245da20f114a9ecbf3a42dc67705bbcbe41145cffe25aba1d83b4b3056a3c557\",\"dweb:/ipfs/QmSj3kL31LufsrvhcxV5DVJhuQAsyBknKuoTPKfutT7Vm2\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol":{"AccessControlUpgradeable":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":\"AccessControlUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol":{"AccessControlEnumerableUpgradeable":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":\"AccessControlEnumerableUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol":{"PausableUpgradeable":{"abi":[{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":\"PausableUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol":{"ERC165Upgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol":{"IAccessControlEnumerable":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlEnumerable declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol":{"Arrays":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212207e0b62056904048220c66daa53ddd125aded60b1cbe8d99543fbc6c94ef7b05564736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0xB62056904048220C66DAA53DDD125ADED60B1CBE8D99543FBC6C94EF7B055 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"459:20446:30:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea26469706673582212207e0b62056904048220c66daa53ddd125aded60b1cbe8d99543fbc6c94ef7b05564736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH31 0xB62056904048220C66DAA53DDD125ADED60B1CBE8D99543FBC6C94EF7B055 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"459:20446:30:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol":{"Comparators":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220e668141befaf6ad39815a3d1e7c215ba44ad7a705ab335a0b968297f7959523264736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUPN 0x68 EQ SHL 0xEF 0xAF PUSH11 0xD39815A3D1E7C215BA44AD PUSH27 0x705AB335A0B968297F7959523264736F6C63430008210033000000 ","sourceMap":"224:218:31:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea2646970667358221220e668141befaf6ad39815a3d1e7c215ba44ad7a705ab335a0b968297f7959523264736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUPN 0x68 EQ SHL 0xEF 0xAF PUSH11 0xD39815A3D1E7C215BA44AD PUSH27 0x705AB335A0B968297F7959523264736F6C63430008210033000000 ","sourceMap":"224:218:31:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to compare values. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":\"Comparators\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220b2c31919447c90811abe328c8b643d8c140f35b5b9133f731dea9e895411eb7d64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xC3 NOT NOT PREVRANDAO PUSH29 0x90811ABE328C8B643D8C140F35B5B9133F731DEA9E895411EB7D64736F PUSH13 0x63430008210033000000000000 ","sourceMap":"657:1315:32:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea2646970667358221220b2c31919447c90811abe328c8b643d8c140f35b5b9133f731dea9e895411eb7d64736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xC3 NOT NOT PREVRANDAO PUSH29 0x90811ABE328C8B643D8C140F35B5B9133F731DEA9E895411EB7D64736F PUSH13 0x63430008210033000000000000 ","sourceMap":"657:1315:32:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example {      using Panic for uint256;      // Use any of the declared internal constants      function foo() { Panic.GENERIC.panic(); }      // Alternatively      function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol":{"ReentrancyGuardTransient":{"abi":[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Variant of {ReentrancyGuard} that uses transient storage. NOTE: This variant only works on networks where EIP-1153 is available. _Available since v5.1._\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol\":\"ReentrancyGuardTransient\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0xe56ff5015046505f81f9d62671a784e933dd099db4c3a8fa8de598f20af2c5a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://355863359b4a250f7016836ef9a9672578e898503896f70a0d42b80141586f3e\",\"dweb:/ipfs/QmXXzvoMSFNQf8nRbcyRap5qzcbekWuzbXDY5C8f68JiG3\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol":{"SlotDerivation":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220e01f42063874c788c17177fb52706bb9ca173b4948384cd91d06fddca577b05364736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RJUMP 0x1F42 MOD CODESIZE PUSH21 0xC788C17177FB52706BB9CA173B4948384CD91D06FD 0xDC 0xA5 PUSH24 0xB05364736F6C634300082100330000000000000000000000 ","sourceMap":"1599:3723:34:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea2646970667358221220e01f42063874c788c17177fb52706bb9ca173b4948384cd91d06fddca577b05364736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RJUMP 0x1F42 MOD CODESIZE PUSH21 0xC788C17177FB52706BB9CA173B4948384CD91D06FD 0xDC 0xA5 PUSH24 0xB05364736F6C634300082100330000000000000000000000 ","sourceMap":"1599:3723:34:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for computing storage (and transient storage) locations from namespaces and deriving slots corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by the solidity language / compiler. See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.]. Example usage: ```solidity contract Example {     // Add the library methods     using StorageSlot for bytes32;     using SlotDerivation for bytes32;     // Declare a namespace     string private constant _NAMESPACE = \\\"<namespace>\\\"; // eg. OpenZeppelin.Slot     function setValueInNamespace(uint256 key, address newValue) internal {         _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;     }     function getValueInNamespace(uint256 key) internal view returns (address) {         return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;     } } ``` TIP: Consider using this library along with {StorageSlot}. NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking upgrade safety will ignore the slots accessed through this library. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":\"SlotDerivation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212203ac28ce7ddecfbd7fe53738f1dd16aef98e5651f1cfb8961f34d096b9e8eccaa64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0xC2 DUP13 SWAPN 0xDD EOFCREATE 0xFB 0xD7 INVALID MSTORE8 PUSH20 0x8F1DD16AEF98E5651F1CFB8961F34D096B9E8ECC 0xAA PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"1407:2774:35:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea26469706673582212203ac28ce7ddecfbd7fe53738f1dd16aef98e5651f1cfb8961f34d096b9e8eccaa64736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE 0xC2 DUP13 SWAPN 0xDD EOFCREATE 0xFB 0xD7 INVALID MSTORE8 PUSH20 0x8F1DD16AEF98E5651F1CFB8961F34D096B9E8ECC 0xAA PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"1407:2774:35:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 {     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(newImplementation.code.length > 0);         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol":{"TransientSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212207ac546d06a6c92f294cfc72724005d9ed971c237398ab112e4f7080e831d3a0564736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xC546D06A6C92F294CFC72724005D9ED971C237398AB112E4F7080E DUP4 SAR GASPRICE SDIV PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"1163:3911:36:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea26469706673582212207ac546d06a6c92f294cfc72724005d9ed971c237398ab112e4f7080e831d3a0564736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xC546D06A6C92F294CFC72724005D9ED971C237398AB112E4F7080E DUP4 SAR GASPRICE SDIV PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"1163:3911:36:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing value-types to specific transient storage slots. Transient slots are often used to store temporary values that are removed after the current transaction. This library helps with reading and writing to such slots without the need for inline assembly.  * Example reading and writing values using transient storage: ```solidity contract Lock {     using TransientSlot for *;     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.     bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;     modifier locked() {         require(!_LOCK_SLOT.asBoolean().tload());         _LOCK_SLOT.asBoolean().tstore(true);         _;         _LOCK_SLOT.asBoolean().tstore(false);     } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol\":\"TransientSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220913ddb2d601a41f1d6c7f4295750fd6e2056711fcc0f64c9ccc8f22728c50a1a64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 RETURNDATASIZE 0xDB 0x2D PUSH1 0x1A COINBASE CALL 0xD6 0xC7 DELEGATECALL 0x29 JUMPI POP REVERT PUSH15 0x2056711FCC0F64C9CCC8F22728C50A BYTE PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"281:31863:39:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea2646970667358221220913ddb2d601a41f1d6c7f4295750fd6e2056711fcc0f64c9ccc8f22728c50a1a64736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP2 RETURNDATASIZE 0xDB 0x2D PUSH1 0x1A COINBASE CALL 0xD6 0xC7 DELEGATECALL 0x29 JUMPI POP REVERT PUSH15 0x2056711FCC0F64C9CCC8F22728C50A BYTE PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"281:31863:39:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220b4b7d4f749595954230eb7fc7f9074812a79cde09de17aba14f2d443dd0b22a264736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 0xB7 0xD4 0xF7 BLOBHASH MSIZE MSIZE SLOAD 0x23 0xE 0xB7 0xFC PUSH32 0x9074812A79CDE09DE17ABA14F2D443DD0B22A264736F6C634300082100330000 ","sourceMap":"769:34173:40:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea2646970667358221220b4b7d4f749595954230eb7fc7f9074812a79cde09de17aba14f2d443dd0b22a264736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 0xB7 0xD4 0xF7 BLOBHASH MSIZE MSIZE SLOAD 0x23 0xE 0xB7 0xFC PUSH32 0x9074812A79CDE09DE17ABA14F2D443DD0B22A264736F6C634300082100330000 ","sourceMap":"769:34173:40:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}"}},"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122066f936e4cbfdcf05baef4c1973e009706c19edffd391636979a5b6fc62a1e6f364736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x17 JUMPI PUSH1 0x39 SWAP1 DUP2 PUSH1 0x1C DUP3 CODECOPY ADDRESS DUP2 POP POP RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0xF936E4CBFDCF05 0xBA 0xEF 0x4C NOT PUSH20 0xE009706C19EDFFD391636979A5B6FC62A1E6F364 PUSH20 0x6F6C634300082100330000000000000000000000 ","sourceMap":"1586:28038:41:-:0;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"5f80fdfea264697066735822122066f936e4cbfdcf05baef4c1973e009706c19edffd391636979a5b6fc62a1e6f364736f6c63430008210033","opcodes":"PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0xF936E4CBFDCF05 0xBA 0xEF 0x4C NOT PUSH20 0xE009706C19EDFFD391636979A5B6FC62A1E6F364 PUSH20 0x6F6C634300082100330000000000000000000000 ","sourceMap":"1586:28038:41:-:0;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. - Set can be cleared (all elements removed) in O(n). ```solidity contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` The following types are supported: - `bytes32` (`Bytes32Set`) since v3.3.0 - `address` (`AddressSet`) since v3.3.0 - `uint256` (`UintSet`) since v3.3.0 - `string` (`StringSet`) since v5.4.0 - `bytes` (`BytesSet`) since v5.4.0 [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]}},\"version\":1}"}},"project/contracts/allocate/DirectAllocation.sol":{"DirectAllocation":{"abi":[{"inputs":[{"internalType":"address","name":"graphToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendTokensFailed","type":"error"},{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"governor","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"issuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a03461011957601f6112da38819003918201601f19168301916001600160401b0383118484101761011d5780849260209460405283398101031261011957516001600160a01b0381169081900361011957801561010a576080525f5160206112ba5f395f51905f525460ff8160401c166100fb576002600160401b03196001600160401b038216016100a5575b604051611188908161013282396080518161095e0152f35b6001600160401b0319166001600160401b039081175f5160206112ba5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61008d565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a395750806305ab421d146108cd578063248a9ca3146108a75780632f2ff15d1461087657806332bc934c1461085957806336568abe14610815578063389ed267146107ee5780633df8d682146107b85780633f4ba83a1461073a5780635c975abb1461070c5780638456cb591461069b5780639010d07c1461064a57806391d14854146105f5578063931c0ac114610592578063a217fddf14610578578063a3246ad3146104bd578063c4d66de8146101c3578063ca15c8731461018d578063ccc5749014610166578063d547741f1461012e5763f5b541a614610103575f80fd5b3461012a575f36600319011261012a5760206040515f5160206110b35f395f51905f528152f35b5f80fd5b3461012a57604036600319011261012a5761016460043561014d610b08565b9061015f61015a82610b54565b610bce565b610c81565b005b3461012a575f36600319011261012a5760206040515f5160206110935f395f51905f528152f35b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f52602052602060405f2054604051908152f35b3461012a57602036600319011261012a576101dc610af2565b5f5160206111335f395f51905f52549060ff8260401c16159167ffffffffffffffff8116801590816104b5575b60011490816104ab575b1590816104a2575b506104935767ffffffffffffffff1981166001175f5160206111335f395f51905f525582610467575b5061024d611007565b610255611007565b6001600160a01b038116908115610458575f5160206110935f395f51905f525f8181525f5160206110d35f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556103a893929182905f5160206110335f395f51905f529080a45f5160206111135f395f51905f525f8181525f5160206110d35f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a45f5160206110b35f395f51905f525f8181525f5160206110d35f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a4610cc3565b610406575b506103b457005b60ff60401b195f5160206111335f395f51905f5254165f5160206111335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b5f5160206110935f395f51905f525f525f5160206110535f395f51905f52602052610451907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e610ec4565b50816103ad565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111335f395f51905f525582610244565b63f92ee8a960e01b5f5260045ffd5b9050158461021b565b303b159150610213565b849150610209565b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f5260205260405f20604051806020835491828152019081935f5260205f20905f5b8181106105625750505081610517910382610b1e565b604051918291602083019060208452518091526040830191905f5b818110610540575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610532565b8254845260209093019260019283019201610501565b3461012a575f36600319011261012a5760206040515f8152f35b3461012a57602036600319011261012a576105ab610af2565b50335f9081525f5160206110735f395f51905f52602052604090205460ff16156105d157005b63e2517d3f60e01b5f52336004525f5160206110935f395f51905f5260245260445ffd5b3461012a57604036600319011261012a5761060e610b08565b6004355f525f5160206110d35f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461012a57604036600319011261012a576004355f525f5160206110535f395f51905f52602052602061068260243560405f20610e9b565b905460405160039290921b1c6001600160a01b03168152f35b3461012a575f36600319011261012a576106b3610b72565b6106bb610c14565b600160ff195f5160206110f35f395f51905f525416175f5160206110f35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461012a575f36600319011261012a57602060ff5f5160206110f35f395f51905f5254166040519015158152f35b3461012a575f36600319011261012a57610752610b72565b5f5160206110f35f395f51905f525460ff8116156107a95760ff19165f5160206110f35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461012a575f36600319011261012a577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194065f80a1005b3461012a575f36600319011261012a5760206040515f5160206111135f395f51905f528152f35b3461012a57604036600319011261012a5761082e610b08565b336001600160a01b0382160361084a5761016490600435610c81565b63334bd91960e11b5f5260045ffd5b3461012a575f36600319011261012a576020604051620f42408152f35b3461012a57604036600319011261012a57610164600435610895610b08565b906108a261015a82610b54565b610c3b565b3461012a57602036600319011261012a5760206108c5600435610b54565b604051908152f35b3461012a57604036600319011261012a576108e6610af2565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb4566020526040902054602435919060ff1615610a1557610929610c14565b60405163a9059cbb60e01b81526001600160a01b03918216600482018190526024820184905291602090829060449082905f907f0000000000000000000000000000000000000000000000000000000000000000165af1908115610a0a575f916109cf575b50156109ba577ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f15f80a3005b636e4cad2760e01b5f5260045260245260445ffd5b90506020813d602011610a02575b816109ea60209383610b1e565b8101031261012a5751801515810361012a578361098e565b3d91506109dd565b6040513d5f823e3d90fd5b63e2517d3f60e01b5f52336004525f5160206110b35f395f51905f5260245260445ffd5b3461012a57602036600319011261012a576004359063ffffffff60e01b821680920361012a5760209163aee4dc4360e01b8114908115610ae1575b8115610a82575b5015158152f35b631cf1473b60e31b811491508115610a9c575b5083610a7b565b635a05180f60e01b811491508115610ab6575b5083610a95565b637965db0b60e01b811491508115610ad0575b5083610aaf565b6301ffc9a760e01b14905083610ac9565b6305ab421d60e01b81149150610a74565b600435906001600160a01b038216820361012a57565b602435906001600160a01b038216820361012a57565b90601f8019910116810190811067ffffffffffffffff821117610b4057604052565b634e487b7160e01b5f52604160045260245ffd5b5f525f5160206110d35f395f51905f52602052600160405f20015490565b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615610baa57565b63e2517d3f60e01b5f52336004525f5160206111135f395f51905f5260245260445ffd5b5f8181525f5160206110d35f395f51905f526020908152604080832033845290915290205460ff1615610bfe5750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f5160206110f35f395f51905f525416610c2c57565b63d93c066560e01b5f5260045ffd5b610c458282610d5b565b9182610c5057505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610ec4565b5090565b610c8b8282610dff565b9182610c9657505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610f2e565b6001600160a01b0381165f9081525f5160206110735f395f51905f52602052604090205460ff16610d56576001600160a01b03165f8181525f5160206110735f395f51905f5260205260408120805460ff191660011790553391905f5160206110935f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b8054821015610eb0575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6001810190825f528160205260405f2054155f14610f27578054600160401b811015610b4057610f14610efe826001879401855584610e9b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b906001820191815f528260205260405f20548015155f14610fff575f198101818111610feb5782545f19810191908211610feb57818103610fb6575b50505080548015610fa2575f190190610f838282610e9b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b610fd6610fc6610efe9386610e9b565b90549060031b1c92839286610e9b565b90555f528360205260405f20555f8080610f6a565b634e487b7160e01b5f52601160045260245ffd5b505050505f90565b60ff5f5160206111335f395f51905f525460401c161561102357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8037935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5597667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a93583cfff6989675398f4134c525d42c7ffd7b7b98bd4b985519a0bc4e3788364736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","opcodes":"PUSH1 0xA0 CALLVALUE PUSH2 0x119 JUMPI PUSH1 0x1F PUSH2 0x12DA CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x11D JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x119 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x119 JUMPI DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x80 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x12BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 PUSH1 0x40 SHR AND PUSH2 0xFB JUMPI PUSH1 0x2 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND ADD PUSH2 0xA5 JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1188 SWAP1 DUP2 PUSH2 0x132 DUP3 CODECOPY PUSH1 0x80 MLOAD DUP2 PUSH2 0x95E ADD MSTORE RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x12BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 SWAP1 LOG1 PUSH0 PUSH2 0x8D JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH4 0x69E4EEB3 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0xA39 JUMPI POP DUP1 PUSH4 0x5AB421D EQ PUSH2 0x8CD JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x876 JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0x859 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x7EE JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x7B8 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x64A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5F5 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x12E JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x103 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x164 PUSH1 0x4 CALLDATALOAD PUSH2 0x14D PUSH2 0xB08 JUMP JUMPDEST SWAP1 PUSH2 0x15F PUSH2 0x15A DUP3 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST PUSH2 0xC81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x1DC PUSH2 0xAF2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x4B5 JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x4AB JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x4A2 JUMPI JUMPDEST POP PUSH2 0x493 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x467 JUMPI JUMPDEST POP PUSH2 0x24D PUSH2 0x1007 JUMP JUMPDEST PUSH2 0x255 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x458 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x3A8 SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0xCC3 JUMP JUMPDEST PUSH2 0x406 JUMPI JUMPDEST POP PUSH2 0x3B4 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x451 SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0xEC4 JUMP JUMPDEST POP DUP2 PUSH2 0x3AD JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x244 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x21B JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x213 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x209 JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 DUP4 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP1 DUP2 SWAP4 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x562 JUMPI POP POP POP DUP2 PUSH2 0x517 SWAP2 SUB DUP3 PUSH2 0xB1E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 ADD SWAP1 PUSH1 0x20 DUP5 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP4 ADD SWAP2 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x540 JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x532 JUMP JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x501 JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x5AB PUSH2 0xAF2 JUMP JUMPDEST POP CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x5D1 JUMPI STOP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x60E PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x682 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x6B3 PUSH2 0xB72 JUMP JUMPDEST PUSH2 0x6BB PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x752 PUSH2 0xB72 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x7A9 JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH32 0xA3B917C02656DCE72578274A2691B36A801594DEFB0373242B11F7F302119406 PUSH0 DUP1 LOG1 STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x82E PUSH2 0xB08 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x84A JUMPI PUSH2 0x164 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0xC81 JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x164 PUSH1 0x4 CALLDATALOAD PUSH2 0x895 PUSH2 0xB08 JUMP JUMPDEST SWAP1 PUSH2 0x8A2 PUSH2 0x15A DUP3 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xC3B JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH2 0x8C5 PUSH1 0x4 CALLDATALOAD PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x8E6 PUSH2 0xAF2 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB456 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0xA15 JUMPI PUSH2 0x929 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 PUSH0 SWAP1 PUSH32 0x0 AND GAS CALL SWAP1 DUP2 ISZERO PUSH2 0xA0A JUMPI PUSH0 SWAP2 PUSH2 0x9CF JUMPI JUMPDEST POP ISZERO PUSH2 0x9BA JUMPI PUSH32 0xF18D5A93C62C1D0C761ED52107F11D20BC2071851206B79C4DD3283BD9F006F1 PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH4 0x6E4CAD27 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0xA02 JUMPI JUMPDEST DUP2 PUSH2 0x9EA PUSH1 0x20 SWAP4 DUP4 PUSH2 0xB1E JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x12A JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x12A JUMPI DUP4 PUSH2 0x98E JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x12A JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0xAE1 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0xA82 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xA9C JUMPI JUMPDEST POP DUP4 PUSH2 0xA7B JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xAB6 JUMPI JUMPDEST POP DUP4 PUSH2 0xA95 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xAD0 JUMPI JUMPDEST POP DUP4 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0xAC9 JUMP JUMPDEST PUSH4 0x5AB421D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x12A JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x12A JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xB40 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBAA JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBFE JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0xC2C JUMPI JUMP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0xC45 DUP3 DUP3 PUSH2 0xD5B JUMP JUMPDEST SWAP2 DUP3 PUSH2 0xC50 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0xC7D SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xEC4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xC8B DUP3 DUP3 PUSH2 0xDFF JUMP JUMPDEST SWAP2 DUP3 PUSH2 0xC96 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0xC7D SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD56 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xDF9 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xDF9 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0xEB0 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0xF27 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0xB40 JUMPI PUSH2 0xF14 PUSH2 0xEFE DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0xE9B JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0xFFF JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0xFEB JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0xFEB JUMPI DUP2 DUP2 SUB PUSH2 0xFB6 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA2 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0xF83 DUP3 DUP3 PUSH2 0xE9B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFD6 PUSH2 0xFC6 PUSH2 0xEFE SWAP4 DUP7 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0xF6A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x1023 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8037935BD0AE54BC31F548C14DBA4D37C5C64B3F8 0xCA SWAP1 0xC 0xB4 PUSH9 0xFB8ABD54D5894F5597 PUSH7 0x7070C54EF182B0 CREATE2 DUP6 DUP12 SUB 0x4B 0xEA 0xC1 0xB6 RETURN ADDMOD SWAP11 LOG2 0xD3 XOR DUP12 0xB1 0xE8 SWAP3 SWAP16 0x4F 0xA9 0xB9 0x29 MUL 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46DF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 CALLDATALOAD DUP4 0xCF SELFDESTRUCT PUSH10 0x89675398F4134C525D42 0xC7 SELFDESTRUCT 0xD7 0xB7 0xB9 DUP12 0xD4 0xB9 DUP6 MLOAD SWAP11 SIGNEXTEND 0xC4 CALLF 0x7883 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER CREATE 0xC5 PUSH31 0x16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A000000 ","sourceMap":"1194:2656:42:-:0;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;4199:24:45;;1194:2656:42;;4267:37:45;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;7894:76:23;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;7983:34:23;7979:146;;-1:-1:-1;1194:2656:42;;;;;;;;4267:37:45;1194:2656:42;;;;;;7979:146:23;-1:-1:-1;;;;;;1194:2656:42;-1:-1:-1;;;;;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;8085:29:23;;1194:2656:42;;8085:29:23;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:23;;-1:-1:-1;7936:23:23;1194:2656:42;;;;-1:-1:-1;1194:2656:42;;-1:-1:-1;1194:2656:42;;-1:-1:-1;1194:2656:42;;;;;;-1:-1:-1;1194:2656:42;;;;;-1:-1:-1;1194:2656:42"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":2802,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2824,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":2846,"id":null,"parameterSlots":2,"returnSlots":0},"fun__checkRole":{"entryPoint":3022,"id":2232,"parameterSlots":1,"returnSlots":0},"fun__grantRole":{"entryPoint":3419,"id":2418,"parameterSlots":2,"returnSlots":1},"fun__revokeRole":{"entryPoint":3201,"id":2690,"parameterSlots":2,"returnSlots":1},"fun_add":{"entryPoint":3780,"id":8455,"parameterSlots":2,"returnSlots":1},"fun_checkInitializing":{"entryPoint":4103,"id":2867,"parameterSlots":0,"returnSlots":0},"fun_checkRole":{"entryPoint":2930,"id":2232,"parameterSlots":0,"returnSlots":0},"fun_getRoleAdmin":{"entryPoint":2900,"id":2274,"parameterSlots":1,"returnSlots":1},"fun_grantRole":{"entryPoint":3267,"id":2418,"parameterSlots":1,"returnSlots":1},"fun_grantRole_2650":{"entryPoint":3131,"id":2650,"parameterSlots":2,"returnSlots":1},"fun_remove":{"entryPoint":3886,"id":8539,"parameterSlots":2,"returnSlots":1},"fun_requireNotPaused":{"entryPoint":3092,"id":3103,"parameterSlots":0,"returnSlots":0},"fun_revokeRole":{"entryPoint":3583,"id":2464,"parameterSlots":2,"returnSlots":1},"storage_array_index_access_bytes32_dyn":{"entryPoint":3739,"id":null,"parameterSlots":2,"returnSlots":2},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1}},"generatedSources":[],"immutableReferences":{"14015":[{"length":32,"start":2398}]},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a395750806305ab421d146108cd578063248a9ca3146108a75780632f2ff15d1461087657806332bc934c1461085957806336568abe14610815578063389ed267146107ee5780633df8d682146107b85780633f4ba83a1461073a5780635c975abb1461070c5780638456cb591461069b5780639010d07c1461064a57806391d14854146105f5578063931c0ac114610592578063a217fddf14610578578063a3246ad3146104bd578063c4d66de8146101c3578063ca15c8731461018d578063ccc5749014610166578063d547741f1461012e5763f5b541a614610103575f80fd5b3461012a575f36600319011261012a5760206040515f5160206110b35f395f51905f528152f35b5f80fd5b3461012a57604036600319011261012a5761016460043561014d610b08565b9061015f61015a82610b54565b610bce565b610c81565b005b3461012a575f36600319011261012a5760206040515f5160206110935f395f51905f528152f35b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f52602052602060405f2054604051908152f35b3461012a57602036600319011261012a576101dc610af2565b5f5160206111335f395f51905f52549060ff8260401c16159167ffffffffffffffff8116801590816104b5575b60011490816104ab575b1590816104a2575b506104935767ffffffffffffffff1981166001175f5160206111335f395f51905f525582610467575b5061024d611007565b610255611007565b6001600160a01b038116908115610458575f5160206110935f395f51905f525f8181525f5160206110d35f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556103a893929182905f5160206110335f395f51905f529080a45f5160206111135f395f51905f525f8181525f5160206110d35f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a45f5160206110b35f395f51905f525f8181525f5160206110d35f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f5160206110935f395f51905f5291829055909290915f5160206110335f395f51905f529080a4610cc3565b610406575b506103b457005b60ff60401b195f5160206111335f395f51905f5254165f5160206111335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b5f5160206110935f395f51905f525f525f5160206110535f395f51905f52602052610451907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e610ec4565b50816103ad565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f5160206111335f395f51905f525582610244565b63f92ee8a960e01b5f5260045ffd5b9050158461021b565b303b159150610213565b849150610209565b3461012a57602036600319011261012a576004355f525f5160206110535f395f51905f5260205260405f20604051806020835491828152019081935f5260205f20905f5b8181106105625750505081610517910382610b1e565b604051918291602083019060208452518091526040830191905f5b818110610540575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610532565b8254845260209093019260019283019201610501565b3461012a575f36600319011261012a5760206040515f8152f35b3461012a57602036600319011261012a576105ab610af2565b50335f9081525f5160206110735f395f51905f52602052604090205460ff16156105d157005b63e2517d3f60e01b5f52336004525f5160206110935f395f51905f5260245260445ffd5b3461012a57604036600319011261012a5761060e610b08565b6004355f525f5160206110d35f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461012a57604036600319011261012a576004355f525f5160206110535f395f51905f52602052602061068260243560405f20610e9b565b905460405160039290921b1c6001600160a01b03168152f35b3461012a575f36600319011261012a576106b3610b72565b6106bb610c14565b600160ff195f5160206110f35f395f51905f525416175f5160206110f35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461012a575f36600319011261012a57602060ff5f5160206110f35f395f51905f5254166040519015158152f35b3461012a575f36600319011261012a57610752610b72565b5f5160206110f35f395f51905f525460ff8116156107a95760ff19165f5160206110f35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461012a575f36600319011261012a577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194065f80a1005b3461012a575f36600319011261012a5760206040515f5160206111135f395f51905f528152f35b3461012a57604036600319011261012a5761082e610b08565b336001600160a01b0382160361084a5761016490600435610c81565b63334bd91960e11b5f5260045ffd5b3461012a575f36600319011261012a576020604051620f42408152f35b3461012a57604036600319011261012a57610164600435610895610b08565b906108a261015a82610b54565b610c3b565b3461012a57602036600319011261012a5760206108c5600435610b54565b604051908152f35b3461012a57604036600319011261012a576108e6610af2565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb4566020526040902054602435919060ff1615610a1557610929610c14565b60405163a9059cbb60e01b81526001600160a01b03918216600482018190526024820184905291602090829060449082905f907f0000000000000000000000000000000000000000000000000000000000000000165af1908115610a0a575f916109cf575b50156109ba577ff18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f15f80a3005b636e4cad2760e01b5f5260045260245260445ffd5b90506020813d602011610a02575b816109ea60209383610b1e565b8101031261012a5751801515810361012a578361098e565b3d91506109dd565b6040513d5f823e3d90fd5b63e2517d3f60e01b5f52336004525f5160206110b35f395f51905f5260245260445ffd5b3461012a57602036600319011261012a576004359063ffffffff60e01b821680920361012a5760209163aee4dc4360e01b8114908115610ae1575b8115610a82575b5015158152f35b631cf1473b60e31b811491508115610a9c575b5083610a7b565b635a05180f60e01b811491508115610ab6575b5083610a95565b637965db0b60e01b811491508115610ad0575b5083610aaf565b6301ffc9a760e01b14905083610ac9565b6305ab421d60e01b81149150610a74565b600435906001600160a01b038216820361012a57565b602435906001600160a01b038216820361012a57565b90601f8019910116810190811067ffffffffffffffff821117610b4057604052565b634e487b7160e01b5f52604160045260245ffd5b5f525f5160206110d35f395f51905f52602052600160405f20015490565b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615610baa57565b63e2517d3f60e01b5f52336004525f5160206111135f395f51905f5260245260445ffd5b5f8181525f5160206110d35f395f51905f526020908152604080832033845290915290205460ff1615610bfe5750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f5160206110f35f395f51905f525416610c2c57565b63d93c066560e01b5f5260045ffd5b610c458282610d5b565b9182610c5057505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610ec4565b5090565b610c8b8282610dff565b9182610c9657505090565b5f9182525f5160206110535f395f51905f526020526040909120610c7d916001600160a01b031690610f2e565b6001600160a01b0381165f9081525f5160206110735f395f51905f52602052604090205460ff16610d56576001600160a01b03165f8181525f5160206110735f395f51905f5260205260408120805460ff191660011790553391905f5160206110935f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615610df9575f8181525f5160206110d35f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b8054821015610eb0575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b6001810190825f528160205260405f2054155f14610f27578054600160401b811015610b4057610f14610efe826001879401855584610e9b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b5050505f90565b906001820191815f528260205260405f20548015155f14610fff575f198101818111610feb5782545f19810191908211610feb57818103610fb6575b50505080548015610fa2575f190190610f838282610e9b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b610fd6610fc6610efe9386610e9b565b90549060031b1c92839286610e9b565b90555f528360205260405f20555f8080610f6a565b634e487b7160e01b5f52601160045260245ffd5b505050505f90565b60ff5f5160206111335f395f51905f525460401c161561102357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8037935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5597667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220a93583cfff6989675398f4134c525d42c7ffd7b7b98bd4b985519a0bc4e3788364736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0xA39 JUMPI POP DUP1 PUSH4 0x5AB421D EQ PUSH2 0x8CD JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x876 JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0x859 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x815 JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x7EE JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x7B8 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x73A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x70C JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x69B JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x64A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x5F5 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0x592 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x4BD JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x12E JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x103 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x164 PUSH1 0x4 CALLDATALOAD PUSH2 0x14D PUSH2 0xB08 JUMP JUMPDEST SWAP1 PUSH2 0x15F PUSH2 0x15A DUP3 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST PUSH2 0xC81 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x1DC PUSH2 0xAF2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x4B5 JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x4AB JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x4A2 JUMPI JUMPDEST POP PUSH2 0x493 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x467 JUMPI JUMPDEST POP PUSH2 0x24D PUSH2 0x1007 JUMP JUMPDEST PUSH2 0x255 PUSH2 0x1007 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x458 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x3A8 SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1033 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0xCC3 JUMP JUMPDEST PUSH2 0x406 JUMPI JUMPDEST POP PUSH2 0x3B4 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x451 SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0xEC4 JUMP JUMPDEST POP DUP2 PUSH2 0x3AD JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x244 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x21B JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x213 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x209 JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 DUP4 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP1 DUP2 SWAP4 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x562 JUMPI POP POP POP DUP2 PUSH2 0x517 SWAP2 SUB DUP3 PUSH2 0xB1E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 PUSH1 0x20 DUP4 ADD SWAP1 PUSH1 0x20 DUP5 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP4 ADD SWAP2 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x540 JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x532 JUMP JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x501 JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x5AB PUSH2 0xAF2 JUMP JUMPDEST POP CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x5D1 JUMPI STOP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x60E PUSH2 0xB08 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x682 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x6B3 PUSH2 0xB72 JUMP JUMPDEST PUSH2 0x6BB PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x752 PUSH2 0xB72 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x7A9 JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH32 0xA3B917C02656DCE72578274A2691B36A801594DEFB0373242B11F7F302119406 PUSH0 DUP1 LOG1 STOP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x82E PUSH2 0xB08 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x84A JUMPI PUSH2 0x164 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0xC81 JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x164 PUSH1 0x4 CALLDATALOAD PUSH2 0x895 PUSH2 0xB08 JUMP JUMPDEST SWAP1 PUSH2 0x8A2 PUSH2 0x15A DUP3 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0xC3B JUMP JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x20 PUSH2 0x8C5 PUSH1 0x4 CALLDATALOAD PUSH2 0xB54 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH2 0x8E6 PUSH2 0xAF2 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB456 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x24 CALLDATALOAD SWAP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0xA15 JUMPI PUSH2 0x929 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE SWAP2 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 PUSH0 SWAP1 PUSH32 0x0 AND GAS CALL SWAP1 DUP2 ISZERO PUSH2 0xA0A JUMPI PUSH0 SWAP2 PUSH2 0x9CF JUMPI JUMPDEST POP ISZERO PUSH2 0x9BA JUMPI PUSH32 0xF18D5A93C62C1D0C761ED52107F11D20BC2071851206B79C4DD3283BD9F006F1 PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH4 0x6E4CAD27 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0xA02 JUMPI JUMPDEST DUP2 PUSH2 0x9EA PUSH1 0x20 SWAP4 DUP4 PUSH2 0xB1E JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x12A JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x12A JUMPI DUP4 PUSH2 0x98E JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10B3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x12A JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x12A JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x12A JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0xAE1 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0xA82 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xA9C JUMPI JUMPDEST POP DUP4 PUSH2 0xA7B JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xAB6 JUMPI JUMPDEST POP DUP4 PUSH2 0xA95 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0xAD0 JUMPI JUMPDEST POP DUP4 PUSH2 0xAAF JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0xAC9 JUMP JUMPDEST PUSH4 0x5AB421D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0xA74 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x12A JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x12A JUMPI JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0xB40 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBAA JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1113 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xBFE JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10F3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0xC2C JUMPI JUMP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0xC45 DUP3 DUP3 PUSH2 0xD5B JUMP JUMPDEST SWAP2 DUP3 PUSH2 0xC50 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0xC7D SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xEC4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xC8B DUP3 DUP3 PUSH2 0xDFF JUMP JUMPDEST SWAP2 DUP3 PUSH2 0xC96 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1053 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0xC7D SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xD56 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1073 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1093 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xDF9 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xDF9 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x10D3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0xEB0 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0xF27 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0xB40 JUMPI PUSH2 0xF14 PUSH2 0xEFE DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0xE9B JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0xFFF JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0xFEB JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0xFEB JUMPI DUP2 DUP2 SUB PUSH2 0xFB6 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0xFA2 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0xF83 DUP3 DUP3 PUSH2 0xE9B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xFD6 PUSH2 0xFC6 PUSH2 0xEFE SWAP4 DUP7 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0xE9B JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0xF6A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x1133 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x1023 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8037935BD0AE54BC31F548C14DBA4D37C5C64B3F8 0xCA SWAP1 0xC 0xB4 PUSH9 0xFB8ABD54D5894F5597 PUSH7 0x7070C54EF182B0 CREATE2 DUP6 DUP12 SUB 0x4B 0xEA 0xC1 0xB6 RETURN ADDMOD SWAP11 LOG2 0xD3 XOR DUP12 0xB1 0xE8 SWAP3 SWAP16 0x4F 0xA9 0xB9 0x29 MUL 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46DF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 CALLDATALOAD DUP4 0xCF SELFDESTRUCT PUSH10 0x89675398F4134C525D42 0xC7 SELFDESTRUCT 0xD7 0xB7 0xB9 DUP12 0xD4 0xB9 DUP6 MLOAD SWAP11 SIGNEXTEND 0xC4 CALLF 0x7883 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"1194:2656:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;5815:26:21;1194:2656:42;;;;:::i;:::-;5785:18:21;3283:4;5785:18;;;:::i;:::-;3283:4;:::i;:::-;5815:26;:::i;:::-;1194:2656:42;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;4301:16:23;1194:2656:42;;;;4724:16:23;;:34;;;;1194:2656:42;4803:1:23;4788:16;:50;;;;1194:2656:42;4853:13:23;:30;;;;1194:2656:42;4849:91:23;;;-1:-1:-1;;1194:2656:42;;4803:1:23;1194:2656:42;-1:-1:-1;;;;;;;;;;;1194:2656:42;;4977:67:23;;1194:2656:42;6891:76:23;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1194:2656:42;;;5377:22:45;;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;4967:24:21;1194:2656:42;;;;;;4241:31:22;;6946:18:21;2399:26:45;;;-1:-1:-1;;;;;;;;;;;7025:52:21;1194:2656:42;7025:52:21;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;4967:24:21;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;2399:26:45;;1194:2656:42;;-1:-1:-1;;;;;;;;;;;7025:52:21;1194:2656:42;7025:52:21;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;4967:24:21;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;2399:26:45;;1194:2656:42;;-1:-1:-1;;;;;;;;;;;7025:52:21;1194:2656:42;7025:52:21;4241:31:22;:::i;:::-;4282:71;;1194:2656:42;5064:101:23;;;1194:2656:42;5064:101:23;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;5140:14:23;1194:2656:42;;;4803:1:23;1194:2656:42;;5140:14:23;1194:2656:42;4282:71:22;-1:-1:-1;;;;;;;;;;;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;11511:50:41;;1194:2656:42;11511:50:41;:::i;:::-;;4282:71:22;;;1194:2656:42;;;;;;;;;4977:67:23;-1:-1:-1;;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;4977:67:23;;;4849:91;4906:23;;;1194:2656:42;4906:23:23;1194:2656:42;;4906:23:23;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:23;;4724:34;;;-1:-1:-1;4724:34:23;;1194:2656:42;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;-1:-1:-1;1194:2656:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;-1:-1:-1;966:10:24;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;4516:23:21;4512:108;;1194:2656:42;4512:108:21;4562:47;;;1194:2656:42;4562:47:21;966:10:24;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;4562:47:21;1194:2656:42;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;3949:31:21;1194:2656:42;;;;;;-1:-1:-1;1194:2656:42;;;;;;-1:-1:-1;1194:2656:42;;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;5853:18:41;1194:2656:42;;;;;5853:18:41;:::i;:::-;1194:2656:42;;;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;3300:4;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;3319:20:25;1194:2656:42;;;966:10:24;1194:2656:42;;3319:20:25;1194:2656:42;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;2971:9:25;2967:62;;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;3627:22:25;1194:2656:42;;;966:10:24;1194:2656:42;;3627:22:25;1194:2656:42;2967:62:25;3003:15;;;1194:2656:42;3003:15:25;1194:2656:42;;3003:15:25;1194:2656:42;;;;;;-1:-1:-1;;1194:2656:42;;;;3554:48;1194:2656;3554:48;;1194:2656;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;966:10:24;-1:-1:-1;;;;;1194:2656:42;;6489:34:21;6485:102;;6597:37;1194:2656:42;;;6597:37:21;:::i;6485:102::-;6546:30;;;1194:2656:42;6546:30:21;1194:2656:42;;6546:30:21;1194:2656:42;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;1936:9:45;1194:2656:42;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;5398:25:21;1194:2656:42;;;;:::i;:::-;5368:18:21;3283:4;5368:18;;;:::i;3283:4::-;5398:25;:::i;1194:2656:42:-;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;966:10:24;1194:2656:42;;;;;;;;;;;;;;;;;4516:23:21;4512:108;;1944:72:25;;:::i;:::-;1194:2656:42;;-1:-1:-1;;;3120:32:42;;-1:-1:-1;;;;;1194:2656:42;;;;3120:32;;1194:2656;;;;;;;;;;;;;;3120:32;;1194:2656;;-1:-1:-1;;3120:11:42;1194:2656;3120:32;;;;;;;1194:2656;3120:32;;;1194:2656;;;;;3198:22;1194:2656;3198:22;;1194:2656;;;;;;;;;;;3120:32;1194:2656;;3120:32;;;1194:2656;3120:32;;1194:2656;3120:32;;;;;;1194:2656;3120:32;;;:::i;:::-;;;1194:2656;;;;;;;;;;;;3120:32;;;;;;-1:-1:-1;3120:32:42;;;1194:2656;;;;;;;;;4512:108:21;4562:47;;;1194:2656:42;4562:47:21;966:10:24;1194:2656:42;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;4562:47:21;1194:2656:42;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2745:48:42;;;:108;;;;1194:2656;2745:160;;;;1194:2656;;;;;;;2745:160;-1:-1:-1;;;6687:49:45;;;-1:-1:-1;6687:89:45;;;;2745:160:42;;;;;6687:89:45;-1:-1:-1;;;1851:57:22;;;-1:-1:-1;1851:97:22;;;;6687:89:45;;;;;1851:97:22;-1:-1:-1;;;3599:47:21;;;-1:-1:-1;3599:87:21;;;;1851:97:22;;;;;3599:87:21;-1:-1:-1;;;1101:40:26;;-1:-1:-1;3599:87:21;;;2745:108:42;-1:-1:-1;;;2809:44:42;;;-1:-1:-1;2745:108:42;;1194:2656;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1194:2656:42;;;;;-1:-1:-1;1194:2656:42;4807:191:21;-1:-1:-1;1194:2656:42;-1:-1:-1;;;;;;;;;;;1194:2656:42;;4967:24:21;1194:2656:42;-1:-1:-1;1194:2656:42;4967:24:21;1194:2656:42;4807:191:21;:::o;4196:103::-;966:10:24;-1:-1:-1;1194:2656:42;;;;;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;1194:2656:42;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;-1:-1:-1;4562:47:21;4196:103;-1:-1:-1;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;966:10:24;1194:2656:42;;;;;;;;;;4516:23:21;4512:108;;4196:103;:::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;1194:2656:42;;;;-1:-1:-1;4562:47:21;2709:128:25;1194:2656:42;-1:-1:-1;;;;;;;;;;;1194:2656:42;;2770:61:25;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:25;;-1:-1:-1;2805:15:25;4035:348:22;4241:31;;;;:::i;:::-;4282:71;;;;4362:14;;4035:348;:::o;4282:71::-;-1:-1:-1;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;11511:50:41;;-1:-1:-1;;;;;1194:2656:42;;11511:50:41;:::i;:::-;;4035:348:22;:::o;4486:353::-;4693:32;;;;:::i;:::-;4735:74;;;;4818:14;;4486:353;:::o;4735:74::-;-1:-1:-1;1194:2656:42;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;11832:53:41;;-1:-1:-1;;;;;1194:2656:42;;11832:53:41;:::i;7318:387:21:-;-1:-1:-1;;;;;1194:2656:42;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;-1:-1:-1;;1194:2656:42;;;;;966:10:24;;1194:2656:42;-1:-1:-1;;;;;;;;;;;2399:26:45;7580:40:21;;1194:2656:42;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;1194:2656:42;7676:12:21;:::o;7318:387::-;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;966:10:24;;1194:2656:42;;7580:40:21;;1194:2656:42;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;;1194:2656:42;7676:12:21;:::o;7942:388::-;1194:2656:42;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;;;;;-1:-1:-1;;;;;1194:2656:42;;;;;;;;;;;;;;;-1:-1:-1;;1194:2656:42;;;966:10:24;;1194:2656:42;;8205:40:21;;1194:2656:42;8205:40:21;1194:2656:42;8259:11:21;:::o;1194:2656:42:-;;;;;;;;-1:-1:-1;1194:2656:42;;-1:-1:-1;1194:2656:42;;;-1:-1:-1;1194:2656:42;:::o;:::-;;;;;;;;;;;;2497:406:41;5197:14;;;1194:2656:42;;;;;;;;;;;5197:26:41;2576:321;1194:2656:42;;;;;-1:-1:-1;;;1194:2656:42;;;;;;;;5197:14:41;1194:2656:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5197:14:41;2832:11;:::o;2576:321::-;2874:12;;;1194:2656:42;2874:12:41;:::o;3071:1368::-;;3266:14;;;1194:2656:42;;;;;;;;;;;3302:13:41;;;3298:1135;3302:13;;;-1:-1:-1;;1194:2656:42;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;;;3777:23:41;;;3773:378;;3298:1135;1194:2656:42;;;;;;;;;-1:-1:-1;;1194:2656:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3266:14:41;4368:11;:::o;1194:2656:42:-;;;;;;;;;;;;3773:378:41;1194:2656:42;3840:22:41;3961:23;3840:22;;;:::i;:::-;1194:2656:42;;;;;;3961:23:41;;;;;:::i;1194:2656:42:-;;;;;;;;;;;;3773:378:41;;;;;1194:2656:42;;;;;;;;;;;;3298:1135:41;4410:12;;;;1194:2656:42;4410:12:41;:::o;7082:141:23:-;1194:2656:42;-1:-1:-1;;;;;;;;;;;1194:2656:42;;;;7148:18:23;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:23;;-1:-1:-1;7189:17:23"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","GOVERNOR_ROLE()":"ccc57490","MILLION()":"32bc934c","OPERATOR_ROLE()":"f5b541a6","PAUSE_ROLE()":"389ed267","beforeIssuanceAllocationChange()":"3df8d682","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","pause()":"8456cb59","paused()":"5c975abb","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","sendTokens(address,uint256)":"05ab421d","setIssuanceAllocator(address)":"931c0ac1","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GovernorCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTokenCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SendTokensFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MILLION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"governor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"issuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program.\",\"details\":\"This contract is designed to be an allocator-minting target in the IssuanceAllocator. The IssuanceAllocator will mint tokens directly to this contract, and the authorized operator can send them to individual addresses as needed. This contract is pausable by the PAUSE_ROLE. When paused, tokens cannot be sent.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SendTokensFailed(address,uint256)\":[{\"params\":{\"amount\":\"The amount of tokens that failed to transfer\",\"to\":\"The address that the transfer was attempted to\"}}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"TokensSent(address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens sent\",\"to\":\"The address that received the tokens\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"For DirectAllocation, this is a no-op since we don't need to perform any calculations before an allocation change. We simply receive tokens from the IssuanceAllocator.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"This contract is upgradeable, but we use the constructor to pass the Graph Token address to the base contract.\",\"params\":{\"graphToken\":\"Address of the Graph Token contract\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"params\":{\"governor\":\"Address that will have the GOVERNOR_ROLE\"}},\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"sendTokens(address,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to send\",\"to\":\"The address to send tokens to\"}},\"setIssuanceAllocator(address)\":{\"details\":\"No-op for DirectAllocation; issuanceAllocator is not stored.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"title\":\"DirectAllocation\",\"version\":1},\"userdoc\":{\"errors\":{\"GovernorCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the governor to the zero address\"}],\"GraphTokenCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the Graph Token to the zero address\"}],\"SendTokensFailed(address,uint256)\":[{\"notice\":\"Thrown when token transfer fails\"}]},\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"},\"TokensSent(address,uint256)\":{\"notice\":\"Emitted when tokens are sent\"}},\"kind\":\"user\",\"methods\":{\"GOVERNOR_ROLE()\":{\"notice\":\"Role identifier for governor accounts\"},\"MILLION()\":{\"notice\":\"One million - used as the denominator for values provided as Parts Per Million (PPM)\"},\"OPERATOR_ROLE()\":{\"notice\":\"Role identifier for operator accounts\"},\"PAUSE_ROLE()\":{\"notice\":\"Role identifier for pause accounts\"},\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"constructor\":{\"notice\":\"Constructor for the DirectAllocation contract\"},\"initialize(address)\":{\"notice\":\"Initialize the DirectAllocation contract\"},\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"sendTokens(address,uint256)\":{\"notice\":\"Send tokens to a specified address\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"A simple contract that receives tokens from the IssuanceAllocator and allows an authorized operator to withdraw them.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/allocate/DirectAllocation.sol\":\"DirectAllocation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol\":{\"keccak256\":\"0xa911740dd57395ffdc478c2d83c60d881fee0f521d25ec99619939ff545cfa13\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://62a95fe4acbbb29cd05a89993fb4cce9126430386db8d8780404ba7e04bf0c08\",\"dweb:/ipfs/QmURXpnJrzBzSdZPq11iizFNwm7bwxvhFGuXC6d2GPkufM\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"project/contracts/allocate/DirectAllocation.sol\":{\"keccak256\":\"0xd5a9b2c4cc7895a241259326bc38c61343db7a09b4f83e218311d3676c73731f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ff91ffc955baed7d4799ed98c1363c537af7f1be7f570e96e0ac0e515f6ea36a\",\"dweb:/ipfs/QmbS7chAcXb88QjRrsZ1PUwpVefa2kKGJ8SnuEyJxP5X5D\"]},\"project/contracts/common/BaseUpgradeable.sol\":{\"keccak256\":\"0x78604bc34c8f141aeae60c342c88d3665ceb74787f9becfcb4847247cff4e79e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://28bd9105960c7c3769d5c27d8ba2d78afe8d55bd4baaccc9dcc0c26468e719ae\",\"dweb:/ipfs/QmSojY3oUAxUieyr67ggKdP2jdbfBQDsexkTdWt4t7jTM6\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]}},\"version\":1}"}},"project/contracts/allocate/IndexingAgreementManager.sol":{"IndexingAgreementManager":{"abi":[{"inputs":[{"internalType":"address","name":"graphToken","type":"address"},{"internalType":"address","name":"paymentsEscrow","type":"address"},{"internalType":"address","name":"recurringCollector","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyAccepted","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementAlreadyOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotAccepted","type":"error"},{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"IndexingAgreementManagerAgreementNotAuthorized","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"IndexingAgreementManagerAgreementNotOffered","type":"error"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"IndexingAgreementManagerAgreementStillClaimable","type":"error"},{"inputs":[{"internalType":"address","name":"dataService","type":"address"}],"name":"IndexingAgreementManagerInvalidDataService","type":"error"},{"inputs":[{"internalType":"string","name":"field","type":"string"}],"name":"IndexingAgreementManagerInvalidRCAField","type":"error"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"expected","type":"address"}],"name":"IndexingAgreementManagerPayerMismatch","type":"error"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"IndexingAgreementManagerStillHasAgreements","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"maxNextClaim","type":"uint256"}],"name":"AgreementOffered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"oldMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxNextClaim","type":"uint256"}],"name":"AgreementReconciled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"AgreementRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":false,"internalType":"uint256","name":"pendingMaxNextClaim","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"updateNonce","type":"uint32"}],"name":"AgreementUpdateOffered","type":"event"},{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"requiredEscrow","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"deposited","type":"uint256"}],"name":"EscrowFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EscrowThawed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"EscrowWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"indexed":true,"internalType":"address","name":"indexer","type":"address"}],"name":"OfferRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAYMENTS_ESCROW","outputs":[{"internalType":"contract IPaymentsEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RECURRING_COLLECTOR","outputs":[{"internalType":"contract IRecurringCollector","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"cancelAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementInfo","outputs":[{"components":[{"internalType":"address","name":"indexer","type":"address"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"uint32","name":"pendingUpdateNonce","type":"uint32"},{"internalType":"uint256","name":"maxNextClaim","type":"uint256"},{"internalType":"uint256","name":"pendingUpdateMaxNextClaim","type":"uint256"},{"internalType":"bytes32","name":"agreementHash","type":"bytes32"},{"internalType":"bytes32","name":"pendingUpdateHash","type":"bytes32"}],"internalType":"struct IIndexingAgreementManager.AgreementInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"getAgreementMaxNextClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getDeficit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreementCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getIndexerAgreements","outputs":[{"internalType":"bytes16[]","name":"","type":"bytes16[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"getRequiredEscrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"governor","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"agreementHash","type":"bytes32"}],"name":"isAuthorizedAgreement","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"maintain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"dataService","type":"address"},{"internalType":"address","name":"serviceProvider","type":"address"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreement","name":"rca","type":"tuple"}],"name":"offerAgreement","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"uint64","name":"endsAt","type":"uint64"},{"internalType":"uint256","name":"maxInitialTokens","type":"uint256"},{"internalType":"uint256","name":"maxOngoingTokensPerSecond","type":"uint256"},{"internalType":"uint32","name":"minSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"maxSecondsPerCollection","type":"uint32"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"internalType":"struct IRecurringCollector.RecurringCollectionAgreementUpdate","name":"rcau","type":"tuple"}],"name":"offerAgreementUpdate","outputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"indexer","type":"address"}],"name":"reconcile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"reconcileAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16[]","name":"agreementIds","type":"bytes16[]"}],"name":"reconcileBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"removeAgreement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes16","name":"agreementId","type":"bytes16"}],"name":"revokeOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"abi_decode_address_fromMemory":{"entryPoint":472,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"60e0346101c057601f6137bc38819003918201601f19168301916001600160401b038311848410176101c4578084926060946040528339810103126101c057610047816101d8565b906100606040610059602084016101d8565b92016101d8565b916001600160a01b031680156101b1576080525f51602061379c5f395f51905f525460ff8160401c166101a2576002600160401b03196001600160401b0382160161014c575b506001600160a01b0390811660a0521660c0526040516135af90816101ed823960805181612d24015260a051818181611c0901528181612050015281816123b701528181612526015281816129500152612c82015260c05181818161024201528181610a190152818161103f015281816114e90152818161177701528181611e0d015281816123db0152818161256c0152818161291a01528181612a1f0152612c5e0152f35b6001600160401b0319166001600160401b039081175f51602061379c5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100a6565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101c05756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a71461214b57508063037c5d7f1461212a578063085b3e65146120e257806309a186351461207f57806318d620f81461203b5780631d1e41aa14611da25780631f19ce54146116cb578063248a9ca3146116ac57806327cc6df11461133d5780632f2ff15d1461130b57806332bc934c146112ed57806336568abe146112a8578063389ed267146112805780633df8d682146112485780633f4ba83a146111c857806359249b0914610fbd5780635c975abb14610f8e57806378ecca5f14610e435780638456cb5914610dd05780638d202ecf14610d395780639010d07c14610ce757806391d1485414610c91578063931c0ac114610c15578063a217fddf14610bf9578063a2a5837914610b04578063a3246ad314610a48578063a49c2e5714610a03578063a74558e1146109d7578063c4d66de8146106cb578063ca15c87314610695578063ccc574901461066d578063d253c4c414610610578063d547741f146105d5578063e9a91276146105b1578063e9b78bc814610452578063f2da52c514610425578063f5b541a6146103fd5763f83118af146101c0575f80fd5b346103fa5760203660031901126103fa576101d961225c565b6101e1612eff565b6101e9612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f5260205260408320805490919061022290849060e01c60ff16612630565b604051600162469ee760e01b03198152600481018290526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916103c0575b5001805160048110156103ac571561039857516004811015610384576001146102c0575b506102ae6102bd926129d4565b546001600160a01b0316612c47565b80f35b60018201546001600160a01b0316803b15610372578085913b1561036e5781809160246040518094819363e5920be960e01b83528860048401525af180156103635761034a575b505081546102bd936102ae9290916001600160a01b0316907f8d1e8d6c67fdf03cb558b5b15ebfac9259fe187a4e9fd980ba7be16ad413e8b58780a392506102a1565b8161035491612338565b61035f57835f610307565b8380fd5b6040513d84823e3d90fd5b5080fd5b630da096cf60e31b8552600452602484fd5b634e487b7160e01b85526021600452602485fd5b6341b3ac3560e11b85526004829052602485fd5b634e487b7160e01b86526021600452602486fd5b6103e291506101a03d81116103e8575b6103da8183612338565b810190612692565b5f61027d565b503d6103d0565b6040513d87823e3d90fd5b80fd5b50346103fa57806003193601126103fa5760206040515f5160206134da5f395f51905f528152f35b50346103fa5760203660031901126103fa57602061044961044461221c565b612273565b54604051908152f35b50346103fa5760203660031901126103fa5760406101209161047261225c565b81610100845161048181612308565b82815282602082015282868201528260608201528260808201528260a08201528260c08201528260e0820152015260018060801b03191681525f5160206134ba5f395f51905f52602052206040516104d881612308565b81549160018060a01b0383169283835260208301906001600160401b038160a01c16825260ff604085019160e01c161515815263ffffffff60018401546060860160018060a01b038216815282608088019260a01c16825260028601549360a088019485526001600160401b0360038801549660c08a01978852610100600560048b01549a60e08d019b8c5201549a01998a526040519a8b52511660208a0152511515604089015260018060a01b039051166060880152511660808601525160a08501525160c08401525160e083015251610100820152f35b50346103fa5760203660031901126103fa5760206104496105d061221c565b6122ab565b50346103fa5760403660031901126103fa5761060c6004356105f5612232565b9061060761060282612885565b612fb7565b61306a565b5080f35b50346103fa5760203660031901126103fa576102bd61062d61225c565b6001600160801b0319811683525f5160206134ba5f395f51905f5260205260408320805490916102ae9161066890829060e01c60ff16612630565b6129d4565b50346103fa57806003193601126103fa5760206040515f51602061347a5f395f51905f528152f35b50346103fa5760203660031901126103fa57604060209160043581525f51602061343a5f395f51905f5283522054604051908152f35b50346103fa5760203660031901126103fa576106e561221c565b5f51602061355a5f395f51905f52549060ff8260401c1615916001600160401b038116801590816109cf575b60011490816109c5575b1590816109bc575b506109ad5767ffffffffffffffff1981166001175f51602061355a5f395f51905f525582610981575b506107556133ee565b61075d6133ee565b6001600160a01b038116908115610972576108dd905f51602061347a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001548187525f5160206134fa5f395f51905f52602052816001604089200155815f51602061341a5f395f51905f528880a45f51602061353a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f51602061353a5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f51602061353a5f395f51905f525f51602061341a5f395f51905f528880a45f5160206134da5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f5160206134da5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f5160206134da5f395f51905f525f51602061341a5f395f51905f528880a46131f0565b61093d575b506108ea5780f35b60ff60401b195f51602061355a5f395f51905f5254165f51602061355a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b61096b905f51602061347a5f395f51905f5284525f51602061343a5f395f51905f526020526040842061319c565b505f6108e2565b63395d053560e01b8452600484fd5b68ffffffffffffffffff191668010000000000000001175f51602061355a5f395f51905f52555f61074c565b63f92ee8a960e01b8452600484fd5b9050155f610723565b303b15915061071b565b849150610711565b50346103fa5760203660031901126103fa5760206109fb6109f661221c565b6128f3565b604051908152f35b50346103fa57806003193601126103fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346103fa5760203660031901126103fa5760043581525f51602061343a5f395f51905f5260205260408120604051908160208254918281520190819285526020852090855b818110610aee5750505082610aa4910383612338565b604051928392602084019060208552518091526040840192915b818110610acc575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610abe565b8254845260209093019260019283019201610a8e565b50346103fa5760203660031901126103fa57610b2161044461221c565b8054610b2c816128dc565b90610b3a6040519283612338565b808252610b46816128dc565b602083019390601f1901368537845b828110610bab5750505090604051928392602084019060208552518091526040840192915b818110610b88575050500390f35b82516001600160801b031916845285945060209384019390920191600101610b7a565b610bb581836130ac565b9054855160039290921b1c6001600160801b03191690821015610be557600582901b850160200152600101610b55565b634e487b7160e01b87526032600452602487fd5b50346103fa57806003193601126103fa57602090604051908152f35b50346103fa5760203660031901126103fa57610c2f61221c565b505f51602061347a5f395f51905f5281525f5160206134fa5f395f51905f5260209081526040808320335f908152925290205460ff1615610c6d5780f35b63e2517d3f60e01b8152336004525f51602061347a5f395f51905f52602452604490fd5b50346103fa5760403660031901126103fa576040610cad612232565b9160043581525f5160206134fa5f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346103fa5760403660031901126103fa57610d2060209160043581525f51602061343a5f395f51905f528352604060243591206130ac565b905460405160039290921b1c6001600160a01b03168152f35b50346103fa5760203660031901126103fa576004358082525f51602061345a5f395f51905f52602052604082205490919060801b6001600160801b0319168015159081610dab575b5015610d9957604051638d202ecf60e01b8152602090f35b6024916389a8b8bf60e01b8252600452fd5b8252505f5160206134ba5f395f51905f52602052604081205460e01c60ff165f610d81565b50346103fa57806003193601126103fa57610de9612f5b565b610df1612ffd565b600160ff195f51602061351a5f395f51905f525416175f51602061351a5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103fa5760203660031901126103fa576004356001600160401b03811161036e573660238201121561036e578060040135906001600160401b038211610f8a576024810190602436918460051b010111610f8a57825b828110610f3057508290815b838310610eb2578480f35b6001600160801b0319610ece610ec98587866128b8565b6128a3565b1685525f5160206134ba5f395f51905f5260205260408520546001600160a01b03169081158015610f1e575b610f14575080610f0b600192612c47565b925b0191610ea7565b9260019150610f0d565b506001600160a01b0381168214610efa565b6001906001600160801b0319610f4a610ec98387876128b8565b1685525f5160206134ba5f395f51905f5260205260ff604086205460e01c1615610f8557610f7f610668610ec98387876128b8565b01610e9b565b610f7f565b8280fd5b50346103fa57806003193601126103fa57602060ff5f51602061351a5f395f51905f5254166040519015158152f35b50346103fa5760203660031901126103fa57610fd761225c565b610fdf612eff565b610fe7612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f52602052604083208054909261101f9060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916111a9575b5001516004811015610384576111955760018060a01b03169160056110a86002830154600384015490612795565b600483015486525f51602061345a5f395f51905f526020526040862080546001600160801b03191690559101548061116a575b506110f06110e8846122ab565b9182546127b6565b9055611104816110ff84612273565b6130c1565b508083525f5160206134ba5f395f51905f526020526111436040842060055f918281558260018201558260028201558260038201558260048201550155565b7f570eed002bce0bf86c1e1b74f6a8ade057760189a0747bbe89c97ab64794dce88380a380f35b84525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f6110db565b6335e47ac160e01b84526004829052602484fd5b6111c291506101a03d81116103e8576103da8183612338565b5f61107a565b50346103fa57806003193601126103fa576111e1612f5b565b5f51602061351a5f395f51905f525460ff8116156112395760ff19165f51602061351a5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103fa57806003193601126103fa577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194068180a180f35b50346103fa57806003193601126103fa5760206040515f51602061353a5f395f51905f528152f35b50346103fa5760403660031901126103fa576112c2612232565b336001600160a01b038216036112de5761060c9060043561306a565b63334bd91960e11b8252600482fd5b50346103fa57806003193601126103fa576020604051620f42408152f35b50346103fa5760403660031901126103fa5761060c60043561132b612232565b9061133861060282612885565b613024565b50346103fa5760203660031901126103fa57600435906001600160401b0382116103fa57816004019061012060031984360301126103fa5761137d612eff565b611385612ffd565b61138e826128a3565b60018060801b03198116928383525f5160206134ba5f395f51905f5260205260408320918254906113c58160ff8460e01c16612630565b60848701359460c48801936113e863ffffffff6113e1876127eb565b16886127fc565b946113f860648b01358097612795565b9760058801958654611661575b50604051634b7827df60e01b8152602060048201529683356001600160801b031981169081900361165d57908894939291602486015260248d016114489061280f565b6001600160401b0316604486015260448d016114639061280f565b6001600160401b03166064860152608485015260a484015260a48b0161148890612823565b63ffffffff1660c484015261149c90612823565b63ffffffff1660e483015260e48a01996114b58b612823565b63ffffffff16610104840152610104016114ce91612834565b610124830161012090526101448301906114e792612865565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691869103815a93602094fa93841561165057819461160d575b506020976115f57f3d2ef8c85debab05fdf59ff23a2b0f231ce3544dd7b82d08dbeaf5367c7a5ae796868a999663ffffffff96604087819b6115fa99528f5f51602061345a5f395f51905f529052209060801c60018060801b03198254161790558760038401556115c461159d866127eb565b60018501805463ffffffff60a01b191660a09290921b63ffffffff60a01b16919091179055565b5580546115d9906001600160a01b03166122ab565b6115e4878254612795565b9055546001600160a01b0316612c47565b6127eb565b83519283521686820152a2604051908152f35b9592919093506020863d602011611648575b8161162c60209383612338565b8101031261164457945191949192909190602061152a565b5f80fd5b3d915061161f565b50604051903d90823e3d90fd5b8580fd5b60038901549061167d906110e8906001600160a01b03166122ab565b9055855484525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f611405565b50346103fa5760203660031901126103fa5760206109fb600435612885565b503461164457602036600319011261164457600435906001600160401b03821161164457816004019161016060031982360301126116445761170b612eff565b611713612ffd565b6044810192611721846127c3565b61172a856127c3565b90306001600160a01b0390911603611d7e575060848201906001600160a01b03611753836127c3565b1615611d465760648301906001600160a01b0361176f836127c3565b1615611d12577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946117a9876127c3565b6117b2846127c3565b966001600160401b036117c4876127c3565b6117cd866127d7565b60405163e1e9b47560e01b81526001600160a01b0395861660048201529a851660248c0152931660448a0152909116606488015261012486013560848801819052969060208260a481845afa918215611caf575f92611ccd575b506001600160801b031982165f8181525f5160206134ba5f395f51905f52602052604090205490989060e01c60ff16611cba5760ff61186d611868896127c3565b6122d0565b5416611c07575b60c4880135996101048901986118898a6127eb565b63ffffffff16611899908d6127fc565b9260a482013593846118aa91612795565b9a6040519d8e958695631163b3f960e31b875260048701602090526118ce8c61280f565b6001600160401b03166024880152602486016118e99061280f565b6001600160401b031660448801526001600160a01b039061190990612248565b1660648701526001600160a01b036119208d612248565b1660848701526001600160a01b036119378e612248565b1660a487015260c486015260e485015260e4830161195490612823565b63ffffffff1661010485015261196990612823565b63ffffffff16610124840152610144830152610144016119899087612834565b610164830161016090526101848301906119a292612865565b03815a93602094fa978815610363578298611bcc575b50926005878960209a9589611b53877f259739c18c8e83f3e1c8b4c6e33f610b34846e32f2decfbf4f90b950e8d9d36b9a8f9a879d9a525f51602061345a5f395f51905f528b52604082209060801c60018060801b031982541617905563ffffffff611a35611a2f611a298c6127c3565b966127d7565b996127c3565b91604051998a96611a4588612308565b60018060a01b031687526001600160401b038d880191168152604087019060018252606088019460018060a01b031685526040608089019380855260a08a0198895261010060c08b019a828c5260e081019c8d52019b818d5281528f5f5160206134ba5f395f51905f529052209b60018060a01b039060018060a01b039051161660018060a01b03198d5416178c5551908b549060ff60e01b9051151560e01b16916001600160401b0360a01b9060a01b169068ffffffffffffffffff60a01b191617178a5560018a019260018060a01b039060018060a01b039051161660018060a01b0319845416178355511681549063ffffffff60a01b9060a01b169063ffffffff60a01b1916179055565b51600286015551600385015551600484015551910155611b7e84611b79610444846127c3565b61319c565b50611b8b6105d0826127c3565b611b96868254612795565b9055611ba9611ba4826127c3565b612c47565b6001600160a01b0390611bbb906127c3565b1693604051908152a3604051908152f35b94919750926020853d602011611bff575b81611bea60209383612338565b810103126116445793519690939260056119b8565b3d9150611bdd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c3a886127c3565b90803b1561164457604051632c741f7960e21b81526001600160a01b0385811660048301529290921660248301525f908290604490829084905af18015611caf57611c9a575b50611c8d611868886127c3565b805460ff19169055611874565b611ca79194505f90612338565b5f925f611c80565b6040513d5f823e3d90fd5b88633ad6907160e11b5f5260045260245ffd5b9091506020813d602011611d0a575b81611ce960209383612338565b8101031261164457516001600160801b03198116810361164457905f611827565b3d9150611cdc565b6040516372367e2160e01b815260206004820152600b60248201526a646174615365727669636560a81b6044820152606490fd5b6040516372367e2160e01b815260206004820152600f60248201526e39b2b93b34b1b2a83937bb34b232b960891b6044820152606490fd5b63079cbb8160e01b5f9081526001600160a01b039190911660045230602452604490fd5b3461164457602036600319011261164457611dbb61225c565b6001600160801b031981165f8181525f5160206134ba5f395f51905f526020526040902080549092611df49060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166101a082602481845afa918215611caf575f9261201a575b506101805f920151600481101561200657611fa057506001600160401b038260a01c16421115611f95575b80611f7f575060018060a01b0316916005611e9c6002830154600384015490612795565b60048301545f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905591015480611f52575b50611ede6110e8846122ab565b9055611eed816110ff84612273565b50805f525f5160206134ba5f395f51905f52602052611f2c60405f2060055f918281558260018201558260028201558260038201558260048201550155565b7f370620d8b2b6b19922292127954be721558200b2233a982111ab5eac961dcd1e5f80a3005b5f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905583611ed1565b8263f833901960e01b5f5260045260245260445ffd5b506002830154611e78565b602491506020906040519283809263b6cd33a760e01b82528760048301525afa908115611caf575f91611fd4575b50611e78565b90506020813d602011611ffe575b81611fef60209383612338565b81010312611644575184611fce565b3d9150611fe2565b634e487b7160e01b5f52602160045260245ffd5b6120349192506101a03d81116103e8576103da8183612338565b9085611e4d565b34611644575f366003190112611644576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346116445760203660031901126116445761209861221c565b6120a181612273565b8054905f5b8281106120b8576120b684612c47565b005b806120dc6120c8600193856130ac565b848060801b031991549060031b1c166129d4565b016120a6565b34611644576020366003190112611644576001600160801b031961210461225c565b165f525f5160206134ba5f395f51905f526020526020600260405f200154604051908152f35b34611644576020366003190112611644576120b661214661221c565b61237c565b34611644576020366003190112611644576004359063ffffffff60e01b82168092036116445760209163aee4dc4360e01b811490811561220b575b81156121fa575b811561219b575b5015158152f35b631cf1473b60e31b8114915081156121b5575b5083612194565b635a05180f60e01b8114915081156121cf575b50836121ae565b637965db0b60e01b8114915081156121e9575b50836121c8565b6301ffc9a760e01b149050836121e2565b636de1cd7f60e11b8114915061218d565b638d202ecf60e01b81149150612186565b600435906001600160a01b038216820361164457565b602435906001600160a01b038216820361164457565b35906001600160a01b038216820361164457565b600435906001600160801b03198216820361164457565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb036020526040902090565b6001600160a01b03165f9081525f51602061349a5f395f51905f526020526040902090565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb046020526040902090565b61012081019081106001600160401b0382111761232457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761232457604052565b6001600160a01b0391821681529181166020830152909116604082015260600190565b61238581612273565b905f91546126105760ff612398826122d0565b5416612524575b6040516335af580f60e21b8152916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f0000000000000000000000000000000000000000000000000000000000000000166020858061240e87853060048501612359565b0381855afa9485156125195783956124e5575b508461242f575b5050505050565b813b15610f8a57604051630f93f1cd60e41b81526001600160a01b0391821660048201529084166024820152604481018590529082908290606490829084905af18015610363576124d0575b50506020816124aa7f9bb27b15352e734811dc60e560d3862af1f1e9da5066ee6f7bc1bd880a031112936122d0565b805460ff191660011790556040519384526001600160a01b031692a25f80808080612428565b6124db828092612338565b6103fa578061247b565b9094506020813d602011612511575b8161250160209383612338565b810103126116445751935f612421565b3d91506124f4565b6040513d85823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156116445760405163f940e38560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152905f908290604490829084905af190816125fb575b506125b7575050565b6125c0816122d0565b805460ff191690556001600160a01b0381167fd900faab28619592e985fe698e5edf2e0819a9d670c3b2547afb60504aa115fb8380a261239f565b6126089193505f90612338565b5f915f6125ae565b63a017a1b160e01b5f9081526001600160a01b0391909116600452602490fd5b156126385750565b6324b1c47960e21b5f9081526001600160801b031991909116600452602490fd5b51906001600160a01b038216820361164457565b51906001600160401b038216820361164457565b519063ffffffff8216820361164457565b90816101a091031261164457604051906101a08201908282106001600160401b0383111761232457610180916040526126ca81612659565b83526126d860208201612659565b60208401526126e960408201612659565b60408401526126fa6060820161266d565b606084015261270b6080820161266d565b608084015261271c60a0820161266d565b60a084015260c081015160c084015260e081015160e08401526127426101008201612681565b6101008401526127556101208201612681565b6101208401526127686101408201612681565b61014084015261277b610160820161266d565b610160840152015160048110156116445761018082015290565b919082018092116127a257565b634e487b7160e01b5f52601160045260245ffd5b919082039182116127a257565b356001600160a01b03811681036116445790565b356001600160401b03811681036116445790565b3563ffffffff811681036116445790565b818102929181159184041417156127a257565b35906001600160401b038216820361164457565b359063ffffffff8216820361164457565b9035601e19823603018112156116445701602081359101916001600160401b03821161164457813603831361164457565b908060209392818452848401375f828201840152601f01601f1916010190565b5f525f5160206134fa5f395f51905f52602052600160405f20015490565b356001600160801b0319811681036116445790565b91908110156128c85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381116123245760051b60200190565b61294c6020612901836122ab565b546040516335af580f60e21b81529093909283918291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163060048501612359565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611caf575f916129a2575b508181106129965750505f90565b61299f916127b6565b90565b90506020813d6020116129cc575b816129bd60209383612338565b8101031261164457515f612988565b3d91506129b0565b6001600160801b0319165f8181525f5160206134ba5f395f51905f5260205260409020805460e081901c60ff1615612c4257604051600162469ee760e01b03198152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691906101a081602481865afa908115611caf575f91612c23575b5061018081015160048110156120065715612428576005840190815415159081612c03575b50612b8a575b50506002820190602460208354926040519283809263b6cd33a760e01b82528960048301525afa908115611caf575f91612b58575b50808203612ad0575050505050565b7f09645923a9d076af2798e345c9e427afd40e7679993c496d420ee25a9a89140693816040945560018060a01b03905416805f525f51602061349a5f395f51905f52602052612b2b82612b2685875f20546127b6565b612795565b905f525f51602061349a5f395f51905f52602052835f205582519182526020820152a25f80808080612428565b90506020813d602011612b82575b81612b7360209383612338565b8101031261164457515f612ac1565b3d9150612b66565b5f8092600386019081549060018060a01b031683525f51602061349a5f395f51905f52602052612bbf604084209182546127b6565b9055825482525f51602061345a5f395f51905f526020526040822080546001600160801b03191690555560018401805463ffffffff60a01b19169055555f80612a8c565b905063ffffffff61014081600188015460a01c169201511610155f612a86565b612c3c91506101a03d81116103e8576103da8183612338565b5f612a61565b505050565b6040516335af580f60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116927f0000000000000000000000000000000000000000000000000000000000000000909116919060208280612cb984883060048501612359565b0381865afa918215611caf575f92612ecb575b506001600160a01b0381165f8181525f51602061349a5f395f51905f52602052604090205490949091828410612d05575b505050505050565b612d0f84846127b6565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939190602081602481885afa908115611caf575f91612e99575b5080821015612e915750925b83612d7f575b5050612cfd565b60205f9160446040518094819363095ea7b360e01b83528c60048401528960248401525af18015611caf57612e5a575b50853b1561164457604051638340f54960e01b81526001600160a01b0391821660048201529116602482015260448101829052935f908590606490829084905af1938415611caf5781606094612e2c927fd3f0e58aa4675ac50da832cc55494b3f7205de4eaf8f3d703da23b48105db95c97612e4a575b50612795565b60405192835260208301526040820152a25f80808080808080612d78565b5f612e5491612338565b5f612e26565b6020813d602011612e89575b81612e7360209383612338565b8101031261164457518015158114612daf575f80fd5b3d9150612e66565b905092612d72565b90506020813d602011612ec3575b81612eb460209383612338565b8101031261164457515f612d66565b3d9150612ea7565b9091506020813d602011612ef7575b81612ee760209383612338565b810103126116445751905f612ccc565b3d9150612eda565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615612f3757565b63e2517d3f60e01b5f52336004525f5160206134da5f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615612f9357565b63e2517d3f60e01b5f52336004525f51602061353a5f395f51905f5260245260445ffd5b5f8181525f5160206134fa5f395f51905f526020908152604080832033845290915290205460ff1615612fe75750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f51602061351a5f395f51905f52541661301557565b63d93c066560e01b5f5260045ffd5b61302e82826132ae565b918261303957505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b03169061319c565b5090565b6130748282613352565b918261307f57505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b0316906130c1565b80548210156128c8575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613194575f1981018181116127a25782545f198101919082116127a257818103613149575b50505080548015613135575f19019061311682826130ac565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b61317f61315961316993866130ac565b90549060031b1c928392866130ac565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f80806130fd565b505050505f90565b6001810190825f528160205260405f2054155f146131e9578054600160401b811015612324576131d66131698260018794018555846130ac565b905554915f5260205260405f2055600190565b5050505f90565b6001600160a01b0381165f9081527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee803602052604090205460ff166132a9576001600160a01b03165f8181527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80360205260408120805460ff191660011790553391905f51602061347a5f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f51602061355a5f395f51905f525460401c161561340a57565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb007935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb02479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb0197667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c8f0305fd351e2f42e60e7e56be7d003b3c4c3b5287f7b57d4d250450410ef1764736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","opcodes":"PUSH1 0xE0 CALLVALUE PUSH2 0x1C0 JUMPI PUSH1 0x1F PUSH2 0x37BC CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x1C4 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x60 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x1C0 JUMPI PUSH2 0x47 DUP2 PUSH2 0x1D8 JUMP JUMPDEST SWAP1 PUSH2 0x60 PUSH1 0x40 PUSH2 0x59 PUSH1 0x20 DUP5 ADD PUSH2 0x1D8 JUMP JUMPDEST SWAP3 ADD PUSH2 0x1D8 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x1B1 JUMPI PUSH1 0x80 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x379C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 PUSH1 0x40 SHR AND PUSH2 0x1A2 JUMPI PUSH1 0x2 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND ADD PUSH2 0x14C JUMPI JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0xA0 MSTORE AND PUSH1 0xC0 MSTORE PUSH1 0x40 MLOAD PUSH2 0x35AF SWAP1 DUP2 PUSH2 0x1ED DUP3 CODECOPY PUSH1 0x80 MLOAD DUP2 PUSH2 0x2D24 ADD MSTORE PUSH1 0xA0 MLOAD DUP2 DUP2 DUP2 PUSH2 0x1C09 ADD MSTORE DUP2 DUP2 PUSH2 0x2050 ADD MSTORE DUP2 DUP2 PUSH2 0x23B7 ADD MSTORE DUP2 DUP2 PUSH2 0x2526 ADD MSTORE DUP2 DUP2 PUSH2 0x2950 ADD MSTORE PUSH2 0x2C82 ADD MSTORE PUSH1 0xC0 MLOAD DUP2 DUP2 DUP2 PUSH2 0x242 ADD MSTORE DUP2 DUP2 PUSH2 0xA19 ADD MSTORE DUP2 DUP2 PUSH2 0x103F ADD MSTORE DUP2 DUP2 PUSH2 0x14E9 ADD MSTORE DUP2 DUP2 PUSH2 0x1777 ADD MSTORE DUP2 DUP2 PUSH2 0x1E0D ADD MSTORE DUP2 DUP2 PUSH2 0x23DB ADD MSTORE DUP2 DUP2 PUSH2 0x256C ADD MSTORE DUP2 DUP2 PUSH2 0x291A ADD MSTORE DUP2 DUP2 PUSH2 0x2A1F ADD MSTORE PUSH2 0x2C5E ADD MSTORE RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x379C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 SWAP1 LOG1 PUSH0 PUSH2 0xA6 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH4 0x69E4EEB3 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1C0 JUMPI JUMP INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 SWAP1 PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x214B JUMPI POP DUP1 PUSH4 0x37C5D7F EQ PUSH2 0x212A JUMPI DUP1 PUSH4 0x85B3E65 EQ PUSH2 0x20E2 JUMPI DUP1 PUSH4 0x9A18635 EQ PUSH2 0x207F JUMPI DUP1 PUSH4 0x18D620F8 EQ PUSH2 0x203B JUMPI DUP1 PUSH4 0x1D1E41AA EQ PUSH2 0x1DA2 JUMPI DUP1 PUSH4 0x1F19CE54 EQ PUSH2 0x16CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x16AC JUMPI DUP1 PUSH4 0x27CC6DF1 EQ PUSH2 0x133D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x130B JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0x12ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x12A8 JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x1280 JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x1248 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x11C8 JUMPI DUP1 PUSH4 0x59249B09 EQ PUSH2 0xFBD JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xF8E JUMPI DUP1 PUSH4 0x78ECCA5F EQ PUSH2 0xE43 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0xDD0 JUMPI DUP1 PUSH4 0x8D202ECF EQ PUSH2 0xD39 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xCE7 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0xC91 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0xC15 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0xBF9 JUMPI DUP1 PUSH4 0xA2A58379 EQ PUSH2 0xB04 JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0xA48 JUMPI DUP1 PUSH4 0xA49C2E57 EQ PUSH2 0xA03 JUMPI DUP1 PUSH4 0xA74558E1 EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x695 JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x66D JUMPI DUP1 PUSH4 0xD253C4C4 EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0xE9A91276 EQ PUSH2 0x5B1 JUMPI DUP1 PUSH4 0xE9B78BC8 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0xF2DA52C5 EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0xF5B541A6 EQ PUSH2 0x3FD JUMPI PUSH4 0xF83118AF EQ PUSH2 0x1C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x1D9 PUSH2 0x225C JUMP JUMPDEST PUSH2 0x1E1 PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1E9 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x222 SWAP1 DUP5 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH2 0x180 SWAP2 DUP7 SWAP2 PUSH2 0x3C0 JUMPI JUMPDEST POP ADD DUP1 MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x3AC JUMPI ISZERO PUSH2 0x398 JUMPI MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x384 JUMPI PUSH1 0x1 EQ PUSH2 0x2C0 JUMPI JUMPDEST POP PUSH2 0x2AE PUSH2 0x2BD SWAP3 PUSH2 0x29D4 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C47 JUMP JUMPDEST DUP1 RETURN JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0x372 JUMPI DUP1 DUP6 SWAP2 EXTCODESIZE ISZERO PUSH2 0x36E JUMPI DUP2 DUP1 SWAP2 PUSH1 0x24 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0xE5920BE9 PUSH1 0xE0 SHL DUP4 MSTORE DUP9 PUSH1 0x4 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x363 JUMPI PUSH2 0x34A JUMPI JUMPDEST POP POP DUP2 SLOAD PUSH2 0x2BD SWAP4 PUSH2 0x2AE SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH32 0x8D1E8D6C67FDF03CB558B5B15EBFAC9259FE187A4E9FD980BA7BE16AD413E8B5 DUP8 DUP1 LOG3 SWAP3 POP PUSH2 0x2A1 JUMP JUMPDEST DUP2 PUSH2 0x354 SWAP2 PUSH2 0x2338 JUMP JUMPDEST PUSH2 0x35F JUMPI DUP4 PUSH0 PUSH2 0x307 JUMP JUMPDEST DUP4 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST PUSH4 0xDA096CF PUSH1 0xE3 SHL DUP6 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x41B3AC35 PUSH1 0xE1 SHL DUP6 MSTORE PUSH1 0x4 DUP3 SWAP1 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST PUSH2 0x3E2 SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI JUMPDEST PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2692 JUMP JUMPDEST PUSH0 PUSH2 0x27D JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3D0 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x449 PUSH2 0x444 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x2273 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH2 0x120 SWAP2 PUSH2 0x472 PUSH2 0x225C JUMP JUMPDEST DUP2 PUSH2 0x100 DUP5 MLOAD PUSH2 0x481 DUP2 PUSH2 0x2308 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP7 DUP3 ADD MSTORE DUP3 PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE DUP3 PUSH1 0xA0 DUP3 ADD MSTORE DUP3 PUSH1 0xC0 DUP3 ADD MSTORE DUP3 PUSH1 0xE0 DUP3 ADD MSTORE ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT AND DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x4D8 DUP2 PUSH2 0x2308 JUMP JUMPDEST DUP2 SLOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP3 DUP4 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 PUSH1 0xA0 SHR AND DUP3 MSTORE PUSH1 0xFF PUSH1 0x40 DUP6 ADD SWAP2 PUSH1 0xE0 SHR AND ISZERO ISZERO DUP2 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x60 DUP7 ADD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE DUP3 PUSH1 0x80 DUP9 ADD SWAP3 PUSH1 0xA0 SHR AND DUP3 MSTORE PUSH1 0x2 DUP7 ADD SLOAD SWAP4 PUSH1 0xA0 DUP9 ADD SWAP5 DUP6 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x3 DUP9 ADD SLOAD SWAP7 PUSH1 0xC0 DUP11 ADD SWAP8 DUP9 MSTORE PUSH2 0x100 PUSH1 0x5 PUSH1 0x4 DUP12 ADD SLOAD SWAP11 PUSH1 0xE0 DUP14 ADD SWAP12 DUP13 MSTORE ADD SLOAD SWAP11 ADD SWAP10 DUP11 MSTORE PUSH1 0x40 MLOAD SWAP11 DUP12 MSTORE MLOAD AND PUSH1 0x20 DUP11 ADD MSTORE MLOAD ISZERO ISZERO PUSH1 0x40 DUP10 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND PUSH1 0x60 DUP9 ADD MSTORE MLOAD AND PUSH1 0x80 DUP7 ADD MSTORE MLOAD PUSH1 0xA0 DUP6 ADD MSTORE MLOAD PUSH1 0xC0 DUP5 ADD MSTORE MLOAD PUSH1 0xE0 DUP4 ADD MSTORE MLOAD PUSH2 0x100 DUP3 ADD MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x449 PUSH2 0x5D0 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x22AB JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x60C PUSH1 0x4 CALLDATALOAD PUSH2 0x5F5 PUSH2 0x2232 JUMP JUMPDEST SWAP1 PUSH2 0x607 PUSH2 0x602 DUP3 PUSH2 0x2885 JUMP JUMPDEST PUSH2 0x2FB7 JUMP JUMPDEST PUSH2 0x306A JUMP JUMPDEST POP DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x2BD PUSH2 0x62D PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x2AE SWAP2 PUSH2 0x668 SWAP1 DUP3 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH2 0x29D4 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x6E5 PUSH2 0x221C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x9CF JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x9C5 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x9BC JUMPI JUMPDEST POP PUSH2 0x9AD JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x981 JUMPI JUMPDEST POP PUSH2 0x755 PUSH2 0x33EE JUMP JUMPDEST PUSH2 0x75D PUSH2 0x33EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x972 JUMPI PUSH2 0x8DD SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD DUP2 DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE DUP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH2 0x31F0 JUMP JUMPDEST PUSH2 0x93D JUMPI JUMPDEST POP PUSH2 0x8EA JUMPI DUP1 RETURN JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST PUSH2 0x96B SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 PUSH2 0x319C JUMP JUMPDEST POP PUSH0 PUSH2 0x8E2 JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP5 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH0 PUSH2 0x74C JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP5 REVERT JUMPDEST SWAP1 POP ISZERO PUSH0 PUSH2 0x723 JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x71B JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x711 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x9FB PUSH2 0x9F6 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x28F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP1 DUP2 SWAP3 DUP6 MSTORE PUSH1 0x20 DUP6 KECCAK256 SWAP1 DUP6 JUMPDEST DUP2 DUP2 LT PUSH2 0xAEE JUMPI POP POP POP DUP3 PUSH2 0xAA4 SWAP2 SUB DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP3 DUP4 SWAP3 PUSH1 0x20 DUP5 ADD SWAP1 PUSH1 0x20 DUP6 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP2 JUMPDEST DUP2 DUP2 LT PUSH2 0xACC JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xABE JUMP JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xA8E JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xB21 PUSH2 0x444 PUSH2 0x221C JUMP JUMPDEST DUP1 SLOAD PUSH2 0xB2C DUP2 PUSH2 0x28DC JUMP JUMPDEST SWAP1 PUSH2 0xB3A PUSH1 0x40 MLOAD SWAP3 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH2 0xB46 DUP2 PUSH2 0x28DC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 PUSH1 0x1F NOT ADD CALLDATASIZE DUP6 CALLDATACOPY DUP5 JUMPDEST DUP3 DUP2 LT PUSH2 0xBAB JUMPI POP POP POP SWAP1 PUSH1 0x40 MLOAD SWAP3 DUP4 SWAP3 PUSH1 0x20 DUP5 ADD SWAP1 PUSH1 0x20 DUP6 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP2 JUMPDEST DUP2 DUP2 LT PUSH2 0xB88 JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xB7A JUMP JUMPDEST PUSH2 0xBB5 DUP2 DUP4 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD DUP6 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 DUP3 LT ISZERO PUSH2 0xBE5 JUMPI PUSH1 0x5 DUP3 SWAP1 SHL DUP6 ADD PUSH1 0x20 ADD MSTORE PUSH1 0x1 ADD PUSH2 0xB55 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xC2F PUSH2 0x221C JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER PUSH0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC6D JUMPI DUP1 RETURN JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 SWAP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH2 0xCAD PUSH2 0x2232 JUMP JUMPDEST SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xD20 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP4 MSTORE PUSH1 0x40 PUSH1 0x24 CALLDATALOAD SWAP2 KECCAK256 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD DUP1 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND DUP1 ISZERO ISZERO SWAP1 DUP2 PUSH2 0xDAB JUMPI JUMPDEST POP ISZERO PUSH2 0xD99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8D202ECF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST PUSH1 0x24 SWAP2 PUSH4 0x89A8B8BF PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 MSTORE REVERT JUMPDEST DUP3 MSTORE POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH0 PUSH2 0xD81 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xDE9 PUSH2 0x2F5B JUMP JUMPDEST PUSH2 0xDF1 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x36E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x4 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0xF8A JUMPI PUSH1 0x24 DUP2 ADD SWAP1 PUSH1 0x24 CALLDATASIZE SWAP2 DUP5 PUSH1 0x5 SHL ADD ADD GT PUSH2 0xF8A JUMPI DUP3 JUMPDEST DUP3 DUP2 LT PUSH2 0xF30 JUMPI POP DUP3 SWAP1 DUP2 JUMPDEST DUP4 DUP4 LT PUSH2 0xEB2 JUMPI DUP5 DUP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0xECE PUSH2 0xEC9 DUP6 DUP8 DUP7 PUSH2 0x28B8 JUMP JUMPDEST PUSH2 0x28A3 JUMP JUMPDEST AND DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO DUP1 ISZERO PUSH2 0xF1E JUMPI JUMPDEST PUSH2 0xF14 JUMPI POP DUP1 PUSH2 0xF0B PUSH1 0x1 SWAP3 PUSH2 0x2C47 JUMP JUMPDEST SWAP3 JUMPDEST ADD SWAP2 PUSH2 0xEA7 JUMP JUMPDEST SWAP3 PUSH1 0x1 SWAP2 POP PUSH2 0xF0D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0xEFA JUMP JUMPDEST PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0xF4A PUSH2 0xEC9 DUP4 DUP8 DUP8 PUSH2 0x28B8 JUMP JUMPDEST AND DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP7 KECCAK256 SLOAD PUSH1 0xE0 SHR AND ISZERO PUSH2 0xF85 JUMPI PUSH2 0xF7F PUSH2 0x668 PUSH2 0xEC9 DUP4 DUP8 DUP8 PUSH2 0x28B8 JUMP JUMPDEST ADD PUSH2 0xE9B JUMP JUMPDEST PUSH2 0xF7F JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xFD7 PUSH2 0x225C JUMP JUMPDEST PUSH2 0xFDF PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0xFE7 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 PUSH2 0x101F SWAP1 PUSH1 0xE0 DUP4 SWAP1 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH2 0x180 SWAP2 DUP7 SWAP2 PUSH2 0x11A9 JUMPI JUMPDEST POP ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x384 JUMPI PUSH2 0x1195 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x5 PUSH2 0x10A8 PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x4 DUP4 ADD SLOAD DUP7 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SWAP2 ADD SLOAD DUP1 PUSH2 0x116A JUMPI JUMPDEST POP PUSH2 0x10F0 PUSH2 0x10E8 DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP2 DUP3 SLOAD PUSH2 0x27B6 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1104 DUP2 PUSH2 0x10FF DUP5 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x30C1 JUMP JUMPDEST POP DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x1143 PUSH1 0x40 DUP5 KECCAK256 PUSH1 0x5 PUSH0 SWAP2 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE DUP3 PUSH1 0x2 DUP3 ADD SSTORE DUP3 PUSH1 0x3 DUP3 ADD SSTORE DUP3 PUSH1 0x4 DUP3 ADD SSTORE ADD SSTORE JUMP JUMPDEST PUSH32 0x570EED002BCE0BF86C1E1B74F6A8ADE057760189A0747BBE89C97AB64794DCE8 DUP4 DUP1 LOG3 DUP1 RETURN JUMPDEST DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE PUSH0 PUSH2 0x10DB JUMP JUMPDEST PUSH4 0x35E47AC1 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP3 SWAP1 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST PUSH2 0x11C2 SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x107A JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x11E1 PUSH2 0x2F5B JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x1239 JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 DUP3 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH32 0xA3B917C02656DCE72578274A2691B36A801594DEFB0373242B11F7F302119406 DUP2 DUP1 LOG1 DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x12C2 PUSH2 0x2232 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x12DE JUMPI PUSH2 0x60C SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x306A JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP3 MSTORE PUSH1 0x4 DUP3 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x60C PUSH1 0x4 CALLDATALOAD PUSH2 0x132B PUSH2 0x2232 JUMP JUMPDEST SWAP1 PUSH2 0x1338 PUSH2 0x602 DUP3 PUSH2 0x2885 JUMP JUMPDEST PUSH2 0x3024 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x3FA JUMPI DUP2 PUSH1 0x4 ADD SWAP1 PUSH2 0x120 PUSH1 0x3 NOT DUP5 CALLDATASIZE SUB ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x137D PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1385 PUSH2 0x2FFD JUMP JUMPDEST PUSH2 0x138E DUP3 PUSH2 0x28A3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP2 AND SWAP3 DUP4 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x13C5 DUP2 PUSH1 0xFF DUP5 PUSH1 0xE0 SHR AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x84 DUP8 ADD CALLDATALOAD SWAP5 PUSH1 0xC4 DUP9 ADD SWAP4 PUSH2 0x13E8 PUSH4 0xFFFFFFFF PUSH2 0x13E1 DUP8 PUSH2 0x27EB JUMP JUMPDEST AND DUP9 PUSH2 0x27FC JUMP JUMPDEST SWAP5 PUSH2 0x13F8 PUSH1 0x64 DUP12 ADD CALLDATALOAD DUP1 SWAP8 PUSH2 0x2795 JUMP JUMPDEST SWAP8 PUSH1 0x5 DUP9 ADD SWAP6 DUP7 SLOAD PUSH2 0x1661 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x4B7827DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP7 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x165D JUMPI SWAP1 DUP9 SWAP5 SWAP4 SWAP3 SWAP2 PUSH1 0x24 DUP7 ADD MSTORE PUSH1 0x24 DUP14 ADD PUSH2 0x1448 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x44 DUP7 ADD MSTORE PUSH1 0x44 DUP14 ADD PUSH2 0x1463 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x64 DUP7 ADD MSTORE PUSH1 0x84 DUP6 ADD MSTORE PUSH1 0xA4 DUP5 ADD MSTORE PUSH1 0xA4 DUP12 ADD PUSH2 0x1488 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0xC4 DUP5 ADD MSTORE PUSH2 0x149C SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0xE4 DUP4 ADD MSTORE PUSH1 0xE4 DUP11 ADD SWAP10 PUSH2 0x14B5 DUP12 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x104 DUP5 ADD MSTORE PUSH2 0x104 ADD PUSH2 0x14CE SWAP2 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x124 DUP4 ADD PUSH2 0x120 SWAP1 MSTORE PUSH2 0x144 DUP4 ADD SWAP1 PUSH2 0x14E7 SWAP3 PUSH2 0x2865 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 SWAP2 SUB DUP2 GAS SWAP4 PUSH1 0x20 SWAP5 STATICCALL SWAP4 DUP5 ISZERO PUSH2 0x1650 JUMPI DUP2 SWAP5 PUSH2 0x160D JUMPI JUMPDEST POP PUSH1 0x20 SWAP8 PUSH2 0x15F5 PUSH32 0x3D2EF8C85DEBAB05FDF59FF23A2B0F231CE3544DD7B82D08DBEAF5367C7A5AE7 SWAP7 DUP7 DUP11 SWAP10 SWAP7 PUSH4 0xFFFFFFFF SWAP7 PUSH1 0x40 DUP8 DUP2 SWAP12 PUSH2 0x15FA SWAP10 MSTORE DUP16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 MSTORE KECCAK256 SWAP1 PUSH1 0x80 SHR PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE DUP8 PUSH1 0x3 DUP5 ADD SSTORE PUSH2 0x15C4 PUSH2 0x159D DUP7 PUSH2 0x27EB JUMP JUMPDEST PUSH1 0x1 DUP6 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0xA0 SWAP3 SWAP1 SWAP3 SHL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST SSTORE DUP1 SLOAD PUSH2 0x15D9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x15E4 DUP8 DUP3 SLOAD PUSH2 0x2795 JUMP JUMPDEST SWAP1 SSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C47 JUMP JUMPDEST PUSH2 0x27EB JUMP JUMPDEST DUP4 MLOAD SWAP3 DUP4 MSTORE AND DUP7 DUP3 ADD MSTORE LOG2 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST SWAP6 SWAP3 SWAP2 SWAP1 SWAP4 POP PUSH1 0x20 DUP7 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1648 JUMPI JUMPDEST DUP2 PUSH2 0x162C PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI SWAP5 MLOAD SWAP2 SWAP5 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0x20 PUSH2 0x152A JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x161F JUMP JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 RETURNDATASIZE SWAP1 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP10 ADD SLOAD SWAP1 PUSH2 0x167D SWAP1 PUSH2 0x10E8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x22AB JUMP JUMPDEST SWAP1 SSTORE DUP6 SLOAD DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE PUSH0 PUSH2 0x1405 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x9FB PUSH1 0x4 CALLDATALOAD PUSH2 0x2885 JUMP JUMPDEST POP CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x1644 JUMPI DUP2 PUSH1 0x4 ADD SWAP2 PUSH2 0x160 PUSH1 0x3 NOT DUP3 CALLDATASIZE SUB ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x170B PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1713 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x44 DUP2 ADD SWAP3 PUSH2 0x1721 DUP5 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x172A DUP6 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SUB PUSH2 0x1D7E JUMPI POP PUSH1 0x84 DUP3 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1753 DUP4 PUSH2 0x27C3 JUMP JUMPDEST AND ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x64 DUP4 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x176F DUP4 PUSH2 0x27C3 JUMP JUMPDEST AND ISZERO PUSH2 0x1D12 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 PUSH2 0x17A9 DUP8 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x17B2 DUP5 PUSH2 0x27C3 JUMP JUMPDEST SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x17C4 DUP8 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x17CD DUP7 PUSH2 0x27D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE1E9B475 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP11 DUP6 AND PUSH1 0x24 DUP13 ADD MSTORE SWAP4 AND PUSH1 0x44 DUP11 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x64 DUP9 ADD MSTORE PUSH2 0x124 DUP7 ADD CALLDATALOAD PUSH1 0x84 DUP9 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP1 PUSH1 0x20 DUP3 PUSH1 0xA4 DUP2 DUP5 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x1CCD JUMPI JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP9 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x1CBA JUMPI PUSH1 0xFF PUSH2 0x186D PUSH2 0x1868 DUP10 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST SLOAD AND PUSH2 0x1C07 JUMPI JUMPDEST PUSH1 0xC4 DUP9 ADD CALLDATALOAD SWAP10 PUSH2 0x104 DUP10 ADD SWAP9 PUSH2 0x1889 DUP11 PUSH2 0x27EB JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x1899 SWAP1 DUP14 PUSH2 0x27FC JUMP JUMPDEST SWAP3 PUSH1 0xA4 DUP3 ADD CALLDATALOAD SWAP4 DUP5 PUSH2 0x18AA SWAP2 PUSH2 0x2795 JUMP JUMPDEST SWAP11 PUSH1 0x40 MLOAD SWAP14 DUP15 SWAP6 DUP7 SWAP6 PUSH4 0x1163B3F9 PUSH1 0xE3 SHL DUP8 MSTORE PUSH1 0x4 DUP8 ADD PUSH1 0x20 SWAP1 MSTORE PUSH2 0x18CE DUP13 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x24 DUP9 ADD MSTORE PUSH1 0x24 DUP7 ADD PUSH2 0x18E9 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x44 DUP9 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0x1909 SWAP1 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0x64 DUP8 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1920 DUP14 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0x84 DUP8 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1937 DUP15 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0xA4 DUP8 ADD MSTORE PUSH1 0xC4 DUP7 ADD MSTORE PUSH1 0xE4 DUP6 ADD MSTORE PUSH1 0xE4 DUP4 ADD PUSH2 0x1954 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x104 DUP6 ADD MSTORE PUSH2 0x1969 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x124 DUP5 ADD MSTORE PUSH2 0x144 DUP4 ADD MSTORE PUSH2 0x144 ADD PUSH2 0x1989 SWAP1 DUP8 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x164 DUP4 ADD PUSH2 0x160 SWAP1 MSTORE PUSH2 0x184 DUP4 ADD SWAP1 PUSH2 0x19A2 SWAP3 PUSH2 0x2865 JUMP JUMPDEST SUB DUP2 GAS SWAP4 PUSH1 0x20 SWAP5 STATICCALL SWAP8 DUP9 ISZERO PUSH2 0x363 JUMPI DUP3 SWAP9 PUSH2 0x1BCC JUMPI JUMPDEST POP SWAP3 PUSH1 0x5 DUP8 DUP10 PUSH1 0x20 SWAP11 SWAP6 DUP10 PUSH2 0x1B53 DUP8 PUSH32 0x259739C18C8E83F3E1C8B4C6E33F610B34846E32F2DECFBF4F90B950E8D9D36B SWAP11 DUP16 SWAP11 DUP8 SWAP14 SWAP11 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP12 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH1 0x80 SHR PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH4 0xFFFFFFFF PUSH2 0x1A35 PUSH2 0x1A2F PUSH2 0x1A29 DUP13 PUSH2 0x27C3 JUMP JUMPDEST SWAP7 PUSH2 0x27D7 JUMP JUMPDEST SWAP10 PUSH2 0x27C3 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP10 DUP11 SWAP7 PUSH2 0x1A45 DUP9 PUSH2 0x2308 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 DUP9 ADD SWAP2 AND DUP2 MSTORE PUSH1 0x40 DUP8 ADD SWAP1 PUSH1 0x1 DUP3 MSTORE PUSH1 0x60 DUP9 ADD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE PUSH1 0x40 PUSH1 0x80 DUP10 ADD SWAP4 DUP1 DUP6 MSTORE PUSH1 0xA0 DUP11 ADD SWAP9 DUP10 MSTORE PUSH2 0x100 PUSH1 0xC0 DUP12 ADD SWAP11 DUP3 DUP13 MSTORE PUSH1 0xE0 DUP2 ADD SWAP13 DUP14 MSTORE ADD SWAP12 DUP2 DUP14 MSTORE DUP2 MSTORE DUP16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 MSTORE KECCAK256 SWAP12 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND AND PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP14 SLOAD AND OR DUP13 SSTORE MLOAD SWAP1 DUP12 SLOAD SWAP1 PUSH1 0xFF PUSH1 0xE0 SHL SWAP1 MLOAD ISZERO ISZERO PUSH1 0xE0 SHL AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xA0 SHL SWAP1 PUSH1 0xA0 SHL AND SWAP1 PUSH9 0xFFFFFFFFFFFFFFFFFF PUSH1 0xA0 SHL NOT AND OR OR DUP11 SSTORE PUSH1 0x1 DUP11 ADD SWAP3 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND AND PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP5 SLOAD AND OR DUP4 SSTORE MLOAD AND DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL SWAP1 PUSH1 0xA0 SHL AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD PUSH1 0x2 DUP7 ADD SSTORE MLOAD PUSH1 0x3 DUP6 ADD SSTORE MLOAD PUSH1 0x4 DUP5 ADD SSTORE MLOAD SWAP2 ADD SSTORE PUSH2 0x1B7E DUP5 PUSH2 0x1B79 PUSH2 0x444 DUP5 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x319C JUMP JUMPDEST POP PUSH2 0x1B8B PUSH2 0x5D0 DUP3 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x1B96 DUP7 DUP3 SLOAD PUSH2 0x2795 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1BA9 PUSH2 0x1BA4 DUP3 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x2C47 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0x1BBB SWAP1 PUSH2 0x27C3 JUMP JUMPDEST AND SWAP4 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST SWAP5 SWAP2 SWAP8 POP SWAP3 PUSH1 0x20 DUP6 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1BFF JUMPI JUMPDEST DUP2 PUSH2 0x1BEA PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI SWAP4 MLOAD SWAP7 SWAP1 SWAP4 SWAP3 PUSH1 0x5 PUSH2 0x19B8 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1BDD JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1C3A DUP9 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 DUP1 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2C741F79 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP3 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1C9A JUMPI JUMPDEST POP PUSH2 0x1C8D PUSH2 0x1868 DUP9 PUSH2 0x27C3 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x1874 JUMP JUMPDEST PUSH2 0x1CA7 SWAP2 SWAP5 POP PUSH0 SWAP1 PUSH2 0x2338 JUMP JUMPDEST PUSH0 SWAP3 PUSH0 PUSH2 0x1C80 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP9 PUSH4 0x3AD69071 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1D0A JUMPI JUMPDEST DUP2 PUSH2 0x1CE9 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 PUSH0 PUSH2 0x1827 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1CDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x72367E21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x6461746153657276696365 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x72367E21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x39B2B93B34B1B2A83937BB34B232B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x79CBB81 PUSH1 0xE0 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE ADDRESS PUSH1 0x24 MSTORE PUSH1 0x44 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x1DBB PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 PUSH2 0x1DF4 SWAP1 PUSH1 0xE0 DUP4 SWAP1 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1A0 DUP3 PUSH1 0x24 DUP2 DUP5 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x201A JUMPI JUMPDEST POP PUSH2 0x180 PUSH0 SWAP3 ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2006 JUMPI PUSH2 0x1FA0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 PUSH1 0xA0 SHR AND TIMESTAMP GT ISZERO PUSH2 0x1F95 JUMPI JUMPDEST DUP1 PUSH2 0x1F7F JUMPI POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x5 PUSH2 0x1E9C PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x4 DUP4 ADD SLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SWAP2 ADD SLOAD DUP1 PUSH2 0x1F52 JUMPI JUMPDEST POP PUSH2 0x1EDE PUSH2 0x10E8 DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1EED DUP2 PUSH2 0x10FF DUP5 PUSH2 0x2273 JUMP JUMPDEST POP DUP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x1F2C PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x5 PUSH0 SWAP2 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE DUP3 PUSH1 0x2 DUP3 ADD SSTORE DUP3 PUSH1 0x3 DUP3 ADD SSTORE DUP3 PUSH1 0x4 DUP3 ADD SSTORE ADD SSTORE JUMP JUMPDEST PUSH32 0x370620D8B2B6B19922292127954BE721558200B2233A982111AB5EAC961DCD1E PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE DUP4 PUSH2 0x1ED1 JUMP JUMPDEST DUP3 PUSH4 0xF8339019 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP PUSH1 0x2 DUP4 ADD SLOAD PUSH2 0x1E78 JUMP JUMPDEST PUSH1 0x24 SWAP2 POP PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0xB6CD33A7 PUSH1 0xE0 SHL DUP3 MSTORE DUP8 PUSH1 0x4 DUP4 ADD MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x1FD4 JUMPI JUMPDEST POP PUSH2 0x1E78 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1FFE JUMPI JUMPDEST DUP2 PUSH2 0x1FEF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD DUP5 PUSH2 0x1FCE JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1FE2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2034 SWAP2 SWAP3 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST SWAP1 DUP6 PUSH2 0x1E4D JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x2098 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x20A1 DUP2 PUSH2 0x2273 JUMP JUMPDEST DUP1 SLOAD SWAP1 PUSH0 JUMPDEST DUP3 DUP2 LT PUSH2 0x20B8 JUMPI PUSH2 0x20B6 DUP5 PUSH2 0x2C47 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH2 0x20DC PUSH2 0x20C8 PUSH1 0x1 SWAP4 DUP6 PUSH2 0x30AC JUMP JUMPDEST DUP5 DUP1 PUSH1 0x80 SHL SUB NOT SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND PUSH2 0x29D4 JUMP JUMPDEST ADD PUSH2 0x20A6 JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0x2104 PUSH2 0x225C JUMP JUMPDEST AND PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x20B6 PUSH2 0x2146 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x237C JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x1644 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x220B JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x21FA JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x219B JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21B5 JUMPI JUMPDEST POP DUP4 PUSH2 0x2194 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21CF JUMPI JUMPDEST POP DUP4 PUSH2 0x21AE JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21E9 JUMPI JUMPDEST POP DUP4 PUSH2 0x21C8 JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x21E2 JUMP JUMPDEST PUSH4 0x6DE1CD7F PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x218D JUMP JUMPDEST PUSH4 0x8D202ECF PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x479BA94FAF2FD6CABF7893623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB03 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x479BA94FAF2FD6CABF7893623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB04 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x120 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2324 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2324 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH2 0x2385 DUP2 PUSH2 0x2273 JUMP JUMPDEST SWAP1 PUSH0 SWAP2 SLOAD PUSH2 0x2610 JUMPI PUSH1 0xFF PUSH2 0x2398 DUP3 PUSH2 0x22D0 JUMP JUMPDEST SLOAD AND PUSH2 0x2524 JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP1 PUSH32 0x0 AND PUSH1 0x20 DUP6 DUP1 PUSH2 0x240E DUP8 DUP6 ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 DUP6 GAS STATICCALL SWAP5 DUP6 ISZERO PUSH2 0x2519 JUMPI DUP4 SWAP6 PUSH2 0x24E5 JUMPI JUMPDEST POP DUP5 PUSH2 0x242F JUMPI JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 EXTCODESIZE ISZERO PUSH2 0xF8A JUMPI PUSH1 0x40 MLOAD PUSH4 0xF93F1CD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH1 0x64 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL DUP1 ISZERO PUSH2 0x363 JUMPI PUSH2 0x24D0 JUMPI JUMPDEST POP POP PUSH1 0x20 DUP2 PUSH2 0x24AA PUSH32 0x9BB27B15352E734811DC60E560D3862AF1F1E9DA5066EE6F7BC1BD880A031112 SWAP4 PUSH2 0x22D0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x24DB DUP3 DUP1 SWAP3 PUSH2 0x2338 JUMP JUMPDEST PUSH2 0x3FA JUMPI DUP1 PUSH2 0x247B JUMP JUMPDEST SWAP1 SWAP5 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2511 JUMPI JUMPDEST DUP2 PUSH2 0x2501 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD SWAP4 PUSH0 PUSH2 0x2421 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF940E385 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 PUSH2 0x25FB JUMPI JUMPDEST POP PUSH2 0x25B7 JUMPI POP POP JUMP JUMPDEST PUSH2 0x25C0 DUP2 PUSH2 0x22D0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH32 0xD900FAAB28619592E985FE698E5EDF2E0819A9D670C3B2547AFB60504AA115FB DUP4 DUP1 LOG2 PUSH2 0x239F JUMP JUMPDEST PUSH2 0x2608 SWAP2 SWAP4 POP PUSH0 SWAP1 PUSH2 0x2338 JUMP JUMPDEST PUSH0 SWAP2 PUSH0 PUSH2 0x25AE JUMP JUMPDEST PUSH4 0xA017A1B1 PUSH1 0xE0 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x2638 JUMPI POP JUMP JUMPDEST PUSH4 0x24B1C479 PUSH1 0xE2 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x1A0 SWAP2 SUB SLT PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD SWAP1 PUSH2 0x1A0 DUP3 ADD SWAP1 DUP3 DUP3 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT OR PUSH2 0x2324 JUMPI PUSH2 0x180 SWAP2 PUSH1 0x40 MSTORE PUSH2 0x26CA DUP2 PUSH2 0x2659 JUMP JUMPDEST DUP4 MSTORE PUSH2 0x26D8 PUSH1 0x20 DUP3 ADD PUSH2 0x2659 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x26E9 PUSH1 0x40 DUP3 ADD PUSH2 0x2659 JUMP JUMPDEST PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26FA PUSH1 0x60 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x270B PUSH1 0x80 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x271C PUSH1 0xA0 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2742 PUSH2 0x100 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x2755 PUSH2 0x120 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x120 DUP5 ADD MSTORE PUSH2 0x2768 PUSH2 0x140 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x277B PUSH2 0x160 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH2 0x160 DUP5 ADD MSTORE ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x1644 JUMPI PUSH2 0x180 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x27A2 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x27A2 JUMPI JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x27A2 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 CALLDATALOAD PUSH1 0x1E NOT DUP3 CALLDATASIZE SUB ADD DUP2 SLT ISZERO PUSH2 0x1644 JUMPI ADD PUSH1 0x20 DUP2 CALLDATALOAD SWAP2 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x1644 JUMPI DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 DUP1 PUSH1 0x20 SWAP4 SWAP3 DUP2 DUP5 MSTORE DUP5 DUP5 ADD CALLDATACOPY PUSH0 DUP3 DUP3 ADD DUP5 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x28C8 JUMPI PUSH1 0x5 SHL ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2324 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x294C PUSH1 0x20 PUSH2 0x2901 DUP4 PUSH2 0x22AB JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP4 SWAP1 SWAP3 DUP4 SWAP2 DUP3 SWAP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x29A2 JUMPI JUMPDEST POP DUP2 DUP2 LT PUSH2 0x2996 JUMPI POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x299F SWAP2 PUSH2 0x27B6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x29CC JUMPI JUMPDEST DUP2 PUSH2 0x29BD PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2988 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x29B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xE0 DUP2 SWAP1 SHR PUSH1 0xFF AND ISZERO PUSH2 0x2C42 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2C23 JUMPI JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2006 JUMPI ISZERO PUSH2 0x2428 JUMPI PUSH1 0x5 DUP5 ADD SWAP1 DUP2 SLOAD ISZERO ISZERO SWAP1 DUP2 PUSH2 0x2C03 JUMPI JUMPDEST POP PUSH2 0x2B8A JUMPI JUMPDEST POP POP PUSH1 0x2 DUP3 ADD SWAP1 PUSH1 0x24 PUSH1 0x20 DUP4 SLOAD SWAP3 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0xB6CD33A7 PUSH1 0xE0 SHL DUP3 MSTORE DUP10 PUSH1 0x4 DUP4 ADD MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2B58 JUMPI JUMPDEST POP DUP1 DUP3 SUB PUSH2 0x2AD0 JUMPI POP POP POP POP POP JUMP JUMPDEST PUSH32 0x9645923A9D076AF2798E345C9E427AFD40E7679993C496D420EE25A9A891406 SWAP4 DUP2 PUSH1 0x40 SWAP5 SSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 SLOAD AND DUP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x2B2B DUP3 PUSH2 0x2B26 DUP6 DUP8 PUSH0 KECCAK256 SLOAD PUSH2 0x27B6 JUMP JUMPDEST PUSH2 0x2795 JUMP JUMPDEST SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP4 PUSH0 KECCAK256 SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2428 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2B82 JUMPI JUMPDEST DUP2 PUSH2 0x2B73 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2AC1 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2B66 JUMP JUMPDEST PUSH0 DUP1 SWAP3 PUSH1 0x3 DUP7 ADD SWAP1 DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x2BBF PUSH1 0x40 DUP5 KECCAK256 SWAP2 DUP3 SLOAD PUSH2 0x27B6 JUMP JUMPDEST SWAP1 SSTORE DUP3 SLOAD DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SSTORE PUSH1 0x1 DUP5 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 DUP1 PUSH2 0x2A8C JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF PUSH2 0x140 DUP2 PUSH1 0x1 DUP9 ADD SLOAD PUSH1 0xA0 SHR AND SWAP3 ADD MLOAD AND LT ISZERO PUSH0 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x2C3C SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x2A61 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP3 PUSH32 0x0 SWAP1 SWAP2 AND SWAP2 SWAP1 PUSH1 0x20 DUP3 DUP1 PUSH2 0x2CB9 DUP5 DUP9 ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 DUP7 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x2ECB JUMPI JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP5 SWAP1 SWAP2 DUP3 DUP5 LT PUSH2 0x2D05 JUMPI JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2D0F DUP5 DUP5 PUSH2 0x27B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP4 SWAP2 SWAP1 PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP9 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2E99 JUMPI JUMPDEST POP DUP1 DUP3 LT ISZERO PUSH2 0x2E91 JUMPI POP SWAP3 JUMPDEST DUP4 PUSH2 0x2D7F JUMPI JUMPDEST POP POP PUSH2 0x2CFD JUMP JUMPDEST PUSH1 0x20 PUSH0 SWAP2 PUSH1 0x44 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP4 MSTORE DUP13 PUSH1 0x4 DUP5 ADD MSTORE DUP10 PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x2E5A JUMPI JUMPDEST POP DUP6 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8340F549 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x64 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP4 DUP5 ISZERO PUSH2 0x1CAF JUMPI DUP2 PUSH1 0x60 SWAP5 PUSH2 0x2E2C SWAP3 PUSH32 0xD3F0E58AA4675AC50DA832CC55494B3F7205DE4EAF8F3D703DA23B48105DB95C SWAP8 PUSH2 0x2E4A JUMPI JUMPDEST POP PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2D78 JUMP JUMPDEST PUSH0 PUSH2 0x2E54 SWAP2 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2E89 JUMPI JUMPDEST DUP2 PUSH2 0x2E73 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2DAF JUMPI PUSH0 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2E66 JUMP JUMPDEST SWAP1 POP SWAP3 PUSH2 0x2D72 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2EC3 JUMPI JUMPDEST DUP2 PUSH2 0x2EB4 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2D66 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2EA7 JUMP JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2EF7 JUMPI JUMPDEST DUP2 PUSH2 0x2EE7 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD SWAP1 PUSH0 PUSH2 0x2CCC JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2EDA JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB456 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2F37 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2F93 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2FE7 JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x3015 JUMPI JUMP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x302E DUP3 DUP3 PUSH2 0x32AE JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x3039 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x3066 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x319C JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x3074 DUP3 DUP3 PUSH2 0x3352 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x307F JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x3066 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x30C1 JUMP JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x28C8 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x3194 JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x27A2 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x27A2 JUMPI DUP2 DUP2 SUB PUSH2 0x3149 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x3135 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x3116 DUP3 DUP3 PUSH2 0x30AC JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x317F PUSH2 0x3159 PUSH2 0x3169 SWAP4 DUP7 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x30AC JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x30FD JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x31E9 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x31D6 PUSH2 0x3169 DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE803 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x32A9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE803 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334C JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x334C JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x340A JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E82371705932000479BA94FAF2FD6CA 0xBF PUSH25 0x93623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB007935BD EXP JUMPF 0x4BC3 0x1F SLOAD DUP13 EQ 0xDB LOG4 0xD3 PUSH29 0x5C64B3F8CA900CB468FB8ABD54D5894F55479BA94FAF2FD6CABF789362 EXTCODESIZE STATICCALL PUSH27 0x552C10E95E15DE10BC58F1E58F2BB8FB02479BA94FAF2FD6CABF78 SWAP4 PUSH3 0x3BFA7A SSTORE 0x2C LT 0xE9 MCOPY ISZERO 0xDE LT 0xBC PC CALL JUMPF 0x8F2B 0xB8 EXTSTATICCALL ADD SWAP8 PUSH7 0x7070C54EF182B0 CREATE2 DUP6 DUP12 SUB 0x4B 0xEA 0xC1 0xB6 RETURN ADDMOD SWAP11 LOG2 0xD3 XOR DUP12 0xB1 0xE8 SWAP3 SWAP16 0x4F 0xA9 0xB9 0x29 MUL 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46DF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 CREATE ADDRESS PUSH0 0xD3 MLOAD 0xE2 DELEGATECALL 0x2E PUSH1 0xE7 JUMPF 0x6BE7 0xD0 SUB 0xB3 0xC4 0xC3 0xB5 0x28 PUSH32 0x7B57D4D250450410EF1764736F6C63430008210033F0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 ","sourceMap":"1851:21173:43:-:0;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;-1:-1:-1;;;;;1851:21173:43;4199:24:45;;1851:21173:43;;4267:37:45;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;7894:76:23;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;7983:34:23;7979:146;;-1:-1:-1;;;;;;;1851:21173:43;;;;4135:49;1851:21173;4194:61;;1851:21173;;;;;;;;4267:37:45;1851:21173:43;;;;;4135:49;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4194:61;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7979:146:23;-1:-1:-1;;;;;;1851:21173:43;-1:-1:-1;;;;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;8085:29:23;;1851:21173:43;;8085:29:23;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:23;;-1:-1:-1;7936:23:23;1851:21173:43;;;;-1:-1:-1;1851:21173:43;;-1:-1:-1;1851:21173:43;;-1:-1:-1;1851:21173:43;;;;;;-1:-1:-1;1851:21173:43;;;;;-1:-1:-1;1851:21173:43;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":8776,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_address_30704":{"entryPoint":8732,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_30725":{"entryPoint":8754,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":9817,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes16":{"entryPoint":8796,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_struct_AgreementData_fromMemory":{"entryPoint":9874,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint32":{"entryPoint":10275,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint32_fromMemory":{"entryPoint":9857,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64":{"entryPoint":10255,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_uint64_fromMemory":{"entryPoint":9837,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_address_address":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_address_address_address":{"entryPoint":9049,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_address_address_uint256":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":10341,"id":null,"parameterSlots":3,"returnSlots":1},"array_allocation_size_array_bytes16_dyn":{"entryPoint":10460,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_access_bytes_calldata":{"entryPoint":10292,"id":null,"parameterSlots":2,"returnSlots":2},"calldata_array_index_access_bytes16_dyn_calldata":{"entryPoint":10424,"id":null,"parameterSlots":3,"returnSlots":1},"checked_add_uint256":{"entryPoint":10133,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_uint256":{"entryPoint":10236,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_uint256":{"entryPoint":10166,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":9016,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_30717":{"entryPoint":8968,"id":null,"parameterSlots":1,"returnSlots":0},"fun__checkRole":{"entryPoint":12123,"id":2232,"parameterSlots":0,"returnSlots":0},"fun__grantRole":{"entryPoint":12974,"id":2418,"parameterSlots":2,"returnSlots":1},"fun__revokeRole":{"entryPoint":12394,"id":2690,"parameterSlots":2,"returnSlots":1},"fun_add":{"entryPoint":12700,"id":8455,"parameterSlots":2,"returnSlots":1},"fun_checkInitializing":{"entryPoint":13294,"id":2867,"parameterSlots":0,"returnSlots":0},"fun_checkRole":{"entryPoint":12031,"id":2232,"parameterSlots":0,"returnSlots":0},"fun_checkRole_2232":{"entryPoint":12215,"id":2232,"parameterSlots":1,"returnSlots":0},"fun_fundEscrow":{"entryPoint":11335,"id":11705,"parameterSlots":1,"returnSlots":0},"fun_getDeficit":{"entryPoint":10483,"id":11349,"parameterSlots":1,"returnSlots":1},"fun_getRoleAdmin":{"entryPoint":10373,"id":2274,"parameterSlots":1,"returnSlots":1},"fun_grantRole":{"entryPoint":12784,"id":2418,"parameterSlots":1,"returnSlots":1},"fun_grantRole_2650":{"entryPoint":12324,"id":2650,"parameterSlots":2,"returnSlots":1},"fun_maintain":{"entryPoint":9084,"id":11286,"parameterSlots":1,"returnSlots":0},"fun_reconcileAgreement":{"entryPoint":10708,"id":11608,"parameterSlots":1,"returnSlots":0},"fun_remove":{"entryPoint":12481,"id":8539,"parameterSlots":2,"returnSlots":1},"fun_requireNotPaused":{"entryPoint":12285,"id":3103,"parameterSlots":0,"returnSlots":0},"fun_revokeRole":{"entryPoint":13138,"id":2464,"parameterSlots":2,"returnSlots":1},"mapping_index_access_mapping_address__struct_Bytes32Set_storage__of_address":{"entryPoint":8875,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_mapping_address_struct_Bytes32Set_storage_of_address":{"entryPoint":8912,"id":null,"parameterSlots":1,"returnSlots":1},"mapping_index_access_t_mapping_t_address_t_struct_Bytes32Set_storage_of_t_address":{"entryPoint":8819,"id":null,"parameterSlots":1,"returnSlots":1},"read_from_calldatat_address":{"entryPoint":10179,"id":null,"parameterSlots":1,"returnSlots":1},"read_from_calldatat_bytes16":{"entryPoint":10403,"id":null,"parameterSlots":1,"returnSlots":1},"read_from_calldatat_uint32":{"entryPoint":10219,"id":null,"parameterSlots":1,"returnSlots":1},"read_from_calldatat_uint64":{"entryPoint":10199,"id":null,"parameterSlots":1,"returnSlots":1},"require_helper_error_IndexingAgreementManagerAgreementNotOffered_bytes16":{"entryPoint":9776,"id":null,"parameterSlots":2,"returnSlots":0},"storage_array_index_access_bytes32_dyn":{"entryPoint":12460,"id":null,"parameterSlots":2,"returnSlots":2},"storage_set_to_zero_struct_AgreementInfo":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_offset_uint32_to_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{"10099":[{"length":32,"start":7177},{"length":32,"start":8272},{"length":32,"start":9143},{"length":32,"start":9510},{"length":32,"start":10576},{"length":32,"start":11394}],"10103":[{"length":32,"start":578},{"length":32,"start":2585},{"length":32,"start":4159},{"length":32,"start":5353},{"length":32,"start":6007},{"length":32,"start":7693},{"length":32,"start":9179},{"length":32,"start":9580},{"length":32,"start":10522},{"length":32,"start":10783},{"length":32,"start":11358}],"14015":[{"length":32,"start":11556}]},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a71461214b57508063037c5d7f1461212a578063085b3e65146120e257806309a186351461207f57806318d620f81461203b5780631d1e41aa14611da25780631f19ce54146116cb578063248a9ca3146116ac57806327cc6df11461133d5780632f2ff15d1461130b57806332bc934c146112ed57806336568abe146112a8578063389ed267146112805780633df8d682146112485780633f4ba83a146111c857806359249b0914610fbd5780635c975abb14610f8e57806378ecca5f14610e435780638456cb5914610dd05780638d202ecf14610d395780639010d07c14610ce757806391d1485414610c91578063931c0ac114610c15578063a217fddf14610bf9578063a2a5837914610b04578063a3246ad314610a48578063a49c2e5714610a03578063a74558e1146109d7578063c4d66de8146106cb578063ca15c87314610695578063ccc574901461066d578063d253c4c414610610578063d547741f146105d5578063e9a91276146105b1578063e9b78bc814610452578063f2da52c514610425578063f5b541a6146103fd5763f83118af146101c0575f80fd5b346103fa5760203660031901126103fa576101d961225c565b6101e1612eff565b6101e9612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f5260205260408320805490919061022290849060e01c60ff16612630565b604051600162469ee760e01b03198152600481018290526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916103c0575b5001805160048110156103ac571561039857516004811015610384576001146102c0575b506102ae6102bd926129d4565b546001600160a01b0316612c47565b80f35b60018201546001600160a01b0316803b15610372578085913b1561036e5781809160246040518094819363e5920be960e01b83528860048401525af180156103635761034a575b505081546102bd936102ae9290916001600160a01b0316907f8d1e8d6c67fdf03cb558b5b15ebfac9259fe187a4e9fd980ba7be16ad413e8b58780a392506102a1565b8161035491612338565b61035f57835f610307565b8380fd5b6040513d84823e3d90fd5b5080fd5b630da096cf60e31b8552600452602484fd5b634e487b7160e01b85526021600452602485fd5b6341b3ac3560e11b85526004829052602485fd5b634e487b7160e01b86526021600452602486fd5b6103e291506101a03d81116103e8575b6103da8183612338565b810190612692565b5f61027d565b503d6103d0565b6040513d87823e3d90fd5b80fd5b50346103fa57806003193601126103fa5760206040515f5160206134da5f395f51905f528152f35b50346103fa5760203660031901126103fa57602061044961044461221c565b612273565b54604051908152f35b50346103fa5760203660031901126103fa5760406101209161047261225c565b81610100845161048181612308565b82815282602082015282868201528260608201528260808201528260a08201528260c08201528260e0820152015260018060801b03191681525f5160206134ba5f395f51905f52602052206040516104d881612308565b81549160018060a01b0383169283835260208301906001600160401b038160a01c16825260ff604085019160e01c161515815263ffffffff60018401546060860160018060a01b038216815282608088019260a01c16825260028601549360a088019485526001600160401b0360038801549660c08a01978852610100600560048b01549a60e08d019b8c5201549a01998a526040519a8b52511660208a0152511515604089015260018060a01b039051166060880152511660808601525160a08501525160c08401525160e083015251610100820152f35b50346103fa5760203660031901126103fa5760206104496105d061221c565b6122ab565b50346103fa5760403660031901126103fa5761060c6004356105f5612232565b9061060761060282612885565b612fb7565b61306a565b5080f35b50346103fa5760203660031901126103fa576102bd61062d61225c565b6001600160801b0319811683525f5160206134ba5f395f51905f5260205260408320805490916102ae9161066890829060e01c60ff16612630565b6129d4565b50346103fa57806003193601126103fa5760206040515f51602061347a5f395f51905f528152f35b50346103fa5760203660031901126103fa57604060209160043581525f51602061343a5f395f51905f5283522054604051908152f35b50346103fa5760203660031901126103fa576106e561221c565b5f51602061355a5f395f51905f52549060ff8260401c1615916001600160401b038116801590816109cf575b60011490816109c5575b1590816109bc575b506109ad5767ffffffffffffffff1981166001175f51602061355a5f395f51905f525582610981575b506107556133ee565b61075d6133ee565b6001600160a01b038116908115610972576108dd905f51602061347a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001548187525f5160206134fa5f395f51905f52602052816001604089200155815f51602061341a5f395f51905f528880a45f51602061353a5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f51602061353a5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f51602061353a5f395f51905f525f51602061341a5f395f51905f528880a45f5160206134da5f395f51905f5285525f5160206134fa5f395f51905f526020525f51602061347a5f395f51905f5260016040872001545f5160206134da5f395f51905f5287525f5160206134fa5f395f51905f526020528160016040892001555f5160206134da5f395f51905f525f51602061341a5f395f51905f528880a46131f0565b61093d575b506108ea5780f35b60ff60401b195f51602061355a5f395f51905f5254165f51602061355a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b61096b905f51602061347a5f395f51905f5284525f51602061343a5f395f51905f526020526040842061319c565b505f6108e2565b63395d053560e01b8452600484fd5b68ffffffffffffffffff191668010000000000000001175f51602061355a5f395f51905f52555f61074c565b63f92ee8a960e01b8452600484fd5b9050155f610723565b303b15915061071b565b849150610711565b50346103fa5760203660031901126103fa5760206109fb6109f661221c565b6128f3565b604051908152f35b50346103fa57806003193601126103fa576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346103fa5760203660031901126103fa5760043581525f51602061343a5f395f51905f5260205260408120604051908160208254918281520190819285526020852090855b818110610aee5750505082610aa4910383612338565b604051928392602084019060208552518091526040840192915b818110610acc575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610abe565b8254845260209093019260019283019201610a8e565b50346103fa5760203660031901126103fa57610b2161044461221c565b8054610b2c816128dc565b90610b3a6040519283612338565b808252610b46816128dc565b602083019390601f1901368537845b828110610bab5750505090604051928392602084019060208552518091526040840192915b818110610b88575050500390f35b82516001600160801b031916845285945060209384019390920191600101610b7a565b610bb581836130ac565b9054855160039290921b1c6001600160801b03191690821015610be557600582901b850160200152600101610b55565b634e487b7160e01b87526032600452602487fd5b50346103fa57806003193601126103fa57602090604051908152f35b50346103fa5760203660031901126103fa57610c2f61221c565b505f51602061347a5f395f51905f5281525f5160206134fa5f395f51905f5260209081526040808320335f908152925290205460ff1615610c6d5780f35b63e2517d3f60e01b8152336004525f51602061347a5f395f51905f52602452604490fd5b50346103fa5760403660031901126103fa576040610cad612232565b9160043581525f5160206134fa5f395f51905f52602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346103fa5760403660031901126103fa57610d2060209160043581525f51602061343a5f395f51905f528352604060243591206130ac565b905460405160039290921b1c6001600160a01b03168152f35b50346103fa5760203660031901126103fa576004358082525f51602061345a5f395f51905f52602052604082205490919060801b6001600160801b0319168015159081610dab575b5015610d9957604051638d202ecf60e01b8152602090f35b6024916389a8b8bf60e01b8252600452fd5b8252505f5160206134ba5f395f51905f52602052604081205460e01c60ff165f610d81565b50346103fa57806003193601126103fa57610de9612f5b565b610df1612ffd565b600160ff195f51602061351a5f395f51905f525416175f51602061351a5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103fa5760203660031901126103fa576004356001600160401b03811161036e573660238201121561036e578060040135906001600160401b038211610f8a576024810190602436918460051b010111610f8a57825b828110610f3057508290815b838310610eb2578480f35b6001600160801b0319610ece610ec98587866128b8565b6128a3565b1685525f5160206134ba5f395f51905f5260205260408520546001600160a01b03169081158015610f1e575b610f14575080610f0b600192612c47565b925b0191610ea7565b9260019150610f0d565b506001600160a01b0381168214610efa565b6001906001600160801b0319610f4a610ec98387876128b8565b1685525f5160206134ba5f395f51905f5260205260ff604086205460e01c1615610f8557610f7f610668610ec98387876128b8565b01610e9b565b610f7f565b8280fd5b50346103fa57806003193601126103fa57602060ff5f51602061351a5f395f51905f5254166040519015158152f35b50346103fa5760203660031901126103fa57610fd761225c565b610fdf612eff565b610fe7612ffd565b6001600160801b031981168083525f5160206134ba5f395f51905f52602052604083208054909261101f9060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390526101a0816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156103ef576101809186916111a9575b5001516004811015610384576111955760018060a01b03169160056110a86002830154600384015490612795565b600483015486525f51602061345a5f395f51905f526020526040862080546001600160801b03191690559101548061116a575b506110f06110e8846122ab565b9182546127b6565b9055611104816110ff84612273565b6130c1565b508083525f5160206134ba5f395f51905f526020526111436040842060055f918281558260018201558260028201558260038201558260048201550155565b7f570eed002bce0bf86c1e1b74f6a8ade057760189a0747bbe89c97ab64794dce88380a380f35b84525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f6110db565b6335e47ac160e01b84526004829052602484fd5b6111c291506101a03d81116103e8576103da8183612338565b5f61107a565b50346103fa57806003193601126103fa576111e1612f5b565b5f51602061351a5f395f51905f525460ff8116156112395760ff19165f51602061351a5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346103fa57806003193601126103fa577fa3b917c02656dce72578274a2691b36a801594defb0373242b11f7f3021194068180a180f35b50346103fa57806003193601126103fa5760206040515f51602061353a5f395f51905f528152f35b50346103fa5760403660031901126103fa576112c2612232565b336001600160a01b038216036112de5761060c9060043561306a565b63334bd91960e11b8252600482fd5b50346103fa57806003193601126103fa576020604051620f42408152f35b50346103fa5760403660031901126103fa5761060c60043561132b612232565b9061133861060282612885565b613024565b50346103fa5760203660031901126103fa57600435906001600160401b0382116103fa57816004019061012060031984360301126103fa5761137d612eff565b611385612ffd565b61138e826128a3565b60018060801b03198116928383525f5160206134ba5f395f51905f5260205260408320918254906113c58160ff8460e01c16612630565b60848701359460c48801936113e863ffffffff6113e1876127eb565b16886127fc565b946113f860648b01358097612795565b9760058801958654611661575b50604051634b7827df60e01b8152602060048201529683356001600160801b031981169081900361165d57908894939291602486015260248d016114489061280f565b6001600160401b0316604486015260448d016114639061280f565b6001600160401b03166064860152608485015260a484015260a48b0161148890612823565b63ffffffff1660c484015261149c90612823565b63ffffffff1660e483015260e48a01996114b58b612823565b63ffffffff16610104840152610104016114ce91612834565b610124830161012090526101448301906114e792612865565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691869103815a93602094fa93841561165057819461160d575b506020976115f57f3d2ef8c85debab05fdf59ff23a2b0f231ce3544dd7b82d08dbeaf5367c7a5ae796868a999663ffffffff96604087819b6115fa99528f5f51602061345a5f395f51905f529052209060801c60018060801b03198254161790558760038401556115c461159d866127eb565b60018501805463ffffffff60a01b191660a09290921b63ffffffff60a01b16919091179055565b5580546115d9906001600160a01b03166122ab565b6115e4878254612795565b9055546001600160a01b0316612c47565b6127eb565b83519283521686820152a2604051908152f35b9592919093506020863d602011611648575b8161162c60209383612338565b8101031261164457945191949192909190602061152a565b5f80fd5b3d915061161f565b50604051903d90823e3d90fd5b8580fd5b60038901549061167d906110e8906001600160a01b03166122ab565b9055855484525f51602061345a5f395f51905f526020526040842080546001600160801b03191690555f611405565b50346103fa5760203660031901126103fa5760206109fb600435612885565b503461164457602036600319011261164457600435906001600160401b03821161164457816004019161016060031982360301126116445761170b612eff565b611713612ffd565b6044810192611721846127c3565b61172a856127c3565b90306001600160a01b0390911603611d7e575060848201906001600160a01b03611753836127c3565b1615611d465760648301906001600160a01b0361176f836127c3565b1615611d12577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946117a9876127c3565b6117b2846127c3565b966001600160401b036117c4876127c3565b6117cd866127d7565b60405163e1e9b47560e01b81526001600160a01b0395861660048201529a851660248c0152931660448a0152909116606488015261012486013560848801819052969060208260a481845afa918215611caf575f92611ccd575b506001600160801b031982165f8181525f5160206134ba5f395f51905f52602052604090205490989060e01c60ff16611cba5760ff61186d611868896127c3565b6122d0565b5416611c07575b60c4880135996101048901986118898a6127eb565b63ffffffff16611899908d6127fc565b9260a482013593846118aa91612795565b9a6040519d8e958695631163b3f960e31b875260048701602090526118ce8c61280f565b6001600160401b03166024880152602486016118e99061280f565b6001600160401b031660448801526001600160a01b039061190990612248565b1660648701526001600160a01b036119208d612248565b1660848701526001600160a01b036119378e612248565b1660a487015260c486015260e485015260e4830161195490612823565b63ffffffff1661010485015261196990612823565b63ffffffff16610124840152610144830152610144016119899087612834565b610164830161016090526101848301906119a292612865565b03815a93602094fa978815610363578298611bcc575b50926005878960209a9589611b53877f259739c18c8e83f3e1c8b4c6e33f610b34846e32f2decfbf4f90b950e8d9d36b9a8f9a879d9a525f51602061345a5f395f51905f528b52604082209060801c60018060801b031982541617905563ffffffff611a35611a2f611a298c6127c3565b966127d7565b996127c3565b91604051998a96611a4588612308565b60018060a01b031687526001600160401b038d880191168152604087019060018252606088019460018060a01b031685526040608089019380855260a08a0198895261010060c08b019a828c5260e081019c8d52019b818d5281528f5f5160206134ba5f395f51905f529052209b60018060a01b039060018060a01b039051161660018060a01b03198d5416178c5551908b549060ff60e01b9051151560e01b16916001600160401b0360a01b9060a01b169068ffffffffffffffffff60a01b191617178a5560018a019260018060a01b039060018060a01b039051161660018060a01b0319845416178355511681549063ffffffff60a01b9060a01b169063ffffffff60a01b1916179055565b51600286015551600385015551600484015551910155611b7e84611b79610444846127c3565b61319c565b50611b8b6105d0826127c3565b611b96868254612795565b9055611ba9611ba4826127c3565b612c47565b6001600160a01b0390611bbb906127c3565b1693604051908152a3604051908152f35b94919750926020853d602011611bff575b81611bea60209383612338565b810103126116445793519690939260056119b8565b3d9150611bdd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c3a886127c3565b90803b1561164457604051632c741f7960e21b81526001600160a01b0385811660048301529290921660248301525f908290604490829084905af18015611caf57611c9a575b50611c8d611868886127c3565b805460ff19169055611874565b611ca79194505f90612338565b5f925f611c80565b6040513d5f823e3d90fd5b88633ad6907160e11b5f5260045260245ffd5b9091506020813d602011611d0a575b81611ce960209383612338565b8101031261164457516001600160801b03198116810361164457905f611827565b3d9150611cdc565b6040516372367e2160e01b815260206004820152600b60248201526a646174615365727669636560a81b6044820152606490fd5b6040516372367e2160e01b815260206004820152600f60248201526e39b2b93b34b1b2a83937bb34b232b960891b6044820152606490fd5b63079cbb8160e01b5f9081526001600160a01b039190911660045230602452604490fd5b3461164457602036600319011261164457611dbb61225c565b6001600160801b031981165f8181525f5160206134ba5f395f51905f526020526040902080549092611df49060e083901c60ff16612630565b604051600162469ee760e01b03198152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166101a082602481845afa918215611caf575f9261201a575b506101805f920151600481101561200657611fa057506001600160401b038260a01c16421115611f95575b80611f7f575060018060a01b0316916005611e9c6002830154600384015490612795565b60048301545f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905591015480611f52575b50611ede6110e8846122ab565b9055611eed816110ff84612273565b50805f525f5160206134ba5f395f51905f52602052611f2c60405f2060055f918281558260018201558260028201558260038201558260048201550155565b7f370620d8b2b6b19922292127954be721558200b2233a982111ab5eac961dcd1e5f80a3005b5f9081525f51602061345a5f395f51905f526020526040902080546001600160801b031916905583611ed1565b8263f833901960e01b5f5260045260245260445ffd5b506002830154611e78565b602491506020906040519283809263b6cd33a760e01b82528760048301525afa908115611caf575f91611fd4575b50611e78565b90506020813d602011611ffe575b81611fef60209383612338565b81010312611644575184611fce565b3d9150611fe2565b634e487b7160e01b5f52602160045260245ffd5b6120349192506101a03d81116103e8576103da8183612338565b9085611e4d565b34611644575f366003190112611644576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346116445760203660031901126116445761209861221c565b6120a181612273565b8054905f5b8281106120b8576120b684612c47565b005b806120dc6120c8600193856130ac565b848060801b031991549060031b1c166129d4565b016120a6565b34611644576020366003190112611644576001600160801b031961210461225c565b165f525f5160206134ba5f395f51905f526020526020600260405f200154604051908152f35b34611644576020366003190112611644576120b661214661221c565b61237c565b34611644576020366003190112611644576004359063ffffffff60e01b82168092036116445760209163aee4dc4360e01b811490811561220b575b81156121fa575b811561219b575b5015158152f35b631cf1473b60e31b8114915081156121b5575b5083612194565b635a05180f60e01b8114915081156121cf575b50836121ae565b637965db0b60e01b8114915081156121e9575b50836121c8565b6301ffc9a760e01b149050836121e2565b636de1cd7f60e11b8114915061218d565b638d202ecf60e01b81149150612186565b600435906001600160a01b038216820361164457565b602435906001600160a01b038216820361164457565b35906001600160a01b038216820361164457565b600435906001600160801b03198216820361164457565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb036020526040902090565b6001600160a01b03165f9081525f51602061349a5f395f51905f526020526040902090565b6001600160a01b03165f9081527f479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb046020526040902090565b61012081019081106001600160401b0382111761232457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761232457604052565b6001600160a01b0391821681529181166020830152909116604082015260600190565b61238581612273565b905f91546126105760ff612398826122d0565b5416612524575b6040516335af580f60e21b8152916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116907f0000000000000000000000000000000000000000000000000000000000000000166020858061240e87853060048501612359565b0381855afa9485156125195783956124e5575b508461242f575b5050505050565b813b15610f8a57604051630f93f1cd60e41b81526001600160a01b0391821660048201529084166024820152604481018590529082908290606490829084905af18015610363576124d0575b50506020816124aa7f9bb27b15352e734811dc60e560d3862af1f1e9da5066ee6f7bc1bd880a031112936122d0565b805460ff191660011790556040519384526001600160a01b031692a25f80808080612428565b6124db828092612338565b6103fa578061247b565b9094506020813d602011612511575b8161250160209383612338565b810103126116445751935f612421565b3d91506124f4565b6040513d85823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156116445760405163f940e38560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015283166024820152905f908290604490829084905af190816125fb575b506125b7575050565b6125c0816122d0565b805460ff191690556001600160a01b0381167fd900faab28619592e985fe698e5edf2e0819a9d670c3b2547afb60504aa115fb8380a261239f565b6126089193505f90612338565b5f915f6125ae565b63a017a1b160e01b5f9081526001600160a01b0391909116600452602490fd5b156126385750565b6324b1c47960e21b5f9081526001600160801b031991909116600452602490fd5b51906001600160a01b038216820361164457565b51906001600160401b038216820361164457565b519063ffffffff8216820361164457565b90816101a091031261164457604051906101a08201908282106001600160401b0383111761232457610180916040526126ca81612659565b83526126d860208201612659565b60208401526126e960408201612659565b60408401526126fa6060820161266d565b606084015261270b6080820161266d565b608084015261271c60a0820161266d565b60a084015260c081015160c084015260e081015160e08401526127426101008201612681565b6101008401526127556101208201612681565b6101208401526127686101408201612681565b61014084015261277b610160820161266d565b610160840152015160048110156116445761018082015290565b919082018092116127a257565b634e487b7160e01b5f52601160045260245ffd5b919082039182116127a257565b356001600160a01b03811681036116445790565b356001600160401b03811681036116445790565b3563ffffffff811681036116445790565b818102929181159184041417156127a257565b35906001600160401b038216820361164457565b359063ffffffff8216820361164457565b9035601e19823603018112156116445701602081359101916001600160401b03821161164457813603831361164457565b908060209392818452848401375f828201840152601f01601f1916010190565b5f525f5160206134fa5f395f51905f52602052600160405f20015490565b356001600160801b0319811681036116445790565b91908110156128c85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b6001600160401b0381116123245760051b60200190565b61294c6020612901836122ab565b546040516335af580f60e21b81529093909283918291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163060048501612359565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611caf575f916129a2575b508181106129965750505f90565b61299f916127b6565b90565b90506020813d6020116129cc575b816129bd60209383612338565b8101031261164457515f612988565b3d91506129b0565b6001600160801b0319165f8181525f5160206134ba5f395f51905f5260205260409020805460e081901c60ff1615612c4257604051600162469ee760e01b03198152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691906101a081602481865afa908115611caf575f91612c23575b5061018081015160048110156120065715612428576005840190815415159081612c03575b50612b8a575b50506002820190602460208354926040519283809263b6cd33a760e01b82528960048301525afa908115611caf575f91612b58575b50808203612ad0575050505050565b7f09645923a9d076af2798e345c9e427afd40e7679993c496d420ee25a9a89140693816040945560018060a01b03905416805f525f51602061349a5f395f51905f52602052612b2b82612b2685875f20546127b6565b612795565b905f525f51602061349a5f395f51905f52602052835f205582519182526020820152a25f80808080612428565b90506020813d602011612b82575b81612b7360209383612338565b8101031261164457515f612ac1565b3d9150612b66565b5f8092600386019081549060018060a01b031683525f51602061349a5f395f51905f52602052612bbf604084209182546127b6565b9055825482525f51602061345a5f395f51905f526020526040822080546001600160801b03191690555560018401805463ffffffff60a01b19169055555f80612a8c565b905063ffffffff61014081600188015460a01c169201511610155f612a86565b612c3c91506101a03d81116103e8576103da8183612338565b5f612a61565b505050565b6040516335af580f60e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116927f0000000000000000000000000000000000000000000000000000000000000000909116919060208280612cb984883060048501612359565b0381865afa918215611caf575f92612ecb575b506001600160a01b0381165f8181525f51602061349a5f395f51905f52602052604090205490949091828410612d05575b505050505050565b612d0f84846127b6565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939190602081602481885afa908115611caf575f91612e99575b5080821015612e915750925b83612d7f575b5050612cfd565b60205f9160446040518094819363095ea7b360e01b83528c60048401528960248401525af18015611caf57612e5a575b50853b1561164457604051638340f54960e01b81526001600160a01b0391821660048201529116602482015260448101829052935f908590606490829084905af1938415611caf5781606094612e2c927fd3f0e58aa4675ac50da832cc55494b3f7205de4eaf8f3d703da23b48105db95c97612e4a575b50612795565b60405192835260208301526040820152a25f80808080808080612d78565b5f612e5491612338565b5f612e26565b6020813d602011612e89575b81612e7360209383612338565b8101031261164457518015158114612daf575f80fd5b3d9150612e66565b905092612d72565b90506020813d602011612ec3575b81612eb460209383612338565b8101031261164457515f612d66565b3d9150612ea7565b9091506020813d602011612ef7575b81612ee760209383612338565b810103126116445751905f612ccc565b3d9150612eda565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff1615612f3757565b63e2517d3f60e01b5f52336004525f5160206134da5f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff1615612f9357565b63e2517d3f60e01b5f52336004525f51602061353a5f395f51905f5260245260445ffd5b5f8181525f5160206134fa5f395f51905f526020908152604080832033845290915290205460ff1615612fe75750565b63e2517d3f60e01b5f523360045260245260445ffd5b60ff5f51602061351a5f395f51905f52541661301557565b63d93c066560e01b5f5260045ffd5b61302e82826132ae565b918261303957505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b03169061319c565b5090565b6130748282613352565b918261307f57505090565b5f9182525f51602061343a5f395f51905f526020526040909120613066916001600160a01b0316906130c1565b80548210156128c8575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613194575f1981018181116127a25782545f198101919082116127a257818103613149575b50505080548015613135575f19019061311682826130ac565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b61317f61315961316993866130ac565b90549060031b1c928392866130ac565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f80806130fd565b505050505f90565b6001810190825f528160205260405f2054155f146131e9578054600160401b811015612324576131d66131698260018794018555846130ac565b905554915f5260205260405f2055600190565b5050505f90565b6001600160a01b0381165f9081527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee803602052604090205460ff166132a9576001600160a01b03165f8181527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80360205260408120805460ff191660011790553391905f51602061347a5f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561334c575f8181525f5160206134fa5f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff5f51602061355a5f395f51905f525460401c161561340a57565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb007935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb02479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb0197667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46df0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c8f0305fd351e2f42e60e7e56be7d003b3c4c3b5287f7b57d4d250450410ef1764736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 SWAP1 PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x214B JUMPI POP DUP1 PUSH4 0x37C5D7F EQ PUSH2 0x212A JUMPI DUP1 PUSH4 0x85B3E65 EQ PUSH2 0x20E2 JUMPI DUP1 PUSH4 0x9A18635 EQ PUSH2 0x207F JUMPI DUP1 PUSH4 0x18D620F8 EQ PUSH2 0x203B JUMPI DUP1 PUSH4 0x1D1E41AA EQ PUSH2 0x1DA2 JUMPI DUP1 PUSH4 0x1F19CE54 EQ PUSH2 0x16CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x16AC JUMPI DUP1 PUSH4 0x27CC6DF1 EQ PUSH2 0x133D JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x130B JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0x12ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x12A8 JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0x1280 JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x1248 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x11C8 JUMPI DUP1 PUSH4 0x59249B09 EQ PUSH2 0xFBD JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xF8E JUMPI DUP1 PUSH4 0x78ECCA5F EQ PUSH2 0xE43 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0xDD0 JUMPI DUP1 PUSH4 0x8D202ECF EQ PUSH2 0xD39 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0xCE7 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0xC91 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0xC15 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0xBF9 JUMPI DUP1 PUSH4 0xA2A58379 EQ PUSH2 0xB04 JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0xA48 JUMPI DUP1 PUSH4 0xA49C2E57 EQ PUSH2 0xA03 JUMPI DUP1 PUSH4 0xA74558E1 EQ PUSH2 0x9D7 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x695 JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x66D JUMPI DUP1 PUSH4 0xD253C4C4 EQ PUSH2 0x610 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0xE9A91276 EQ PUSH2 0x5B1 JUMPI DUP1 PUSH4 0xE9B78BC8 EQ PUSH2 0x452 JUMPI DUP1 PUSH4 0xF2DA52C5 EQ PUSH2 0x425 JUMPI DUP1 PUSH4 0xF5B541A6 EQ PUSH2 0x3FD JUMPI PUSH4 0xF83118AF EQ PUSH2 0x1C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x1D9 PUSH2 0x225C JUMP JUMPDEST PUSH2 0x1E1 PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1E9 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x222 SWAP1 DUP5 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH2 0x180 SWAP2 DUP7 SWAP2 PUSH2 0x3C0 JUMPI JUMPDEST POP ADD DUP1 MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x3AC JUMPI ISZERO PUSH2 0x398 JUMPI MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x384 JUMPI PUSH1 0x1 EQ PUSH2 0x2C0 JUMPI JUMPDEST POP PUSH2 0x2AE PUSH2 0x2BD SWAP3 PUSH2 0x29D4 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C47 JUMP JUMPDEST DUP1 RETURN JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0x372 JUMPI DUP1 DUP6 SWAP2 EXTCODESIZE ISZERO PUSH2 0x36E JUMPI DUP2 DUP1 SWAP2 PUSH1 0x24 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0xE5920BE9 PUSH1 0xE0 SHL DUP4 MSTORE DUP9 PUSH1 0x4 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x363 JUMPI PUSH2 0x34A JUMPI JUMPDEST POP POP DUP2 SLOAD PUSH2 0x2BD SWAP4 PUSH2 0x2AE SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH32 0x8D1E8D6C67FDF03CB558B5B15EBFAC9259FE187A4E9FD980BA7BE16AD413E8B5 DUP8 DUP1 LOG3 SWAP3 POP PUSH2 0x2A1 JUMP JUMPDEST DUP2 PUSH2 0x354 SWAP2 PUSH2 0x2338 JUMP JUMPDEST PUSH2 0x35F JUMPI DUP4 PUSH0 PUSH2 0x307 JUMP JUMPDEST DUP4 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP5 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP DUP1 REVERT JUMPDEST PUSH4 0xDA096CF PUSH1 0xE3 SHL DUP6 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP6 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x41B3AC35 PUSH1 0xE1 SHL DUP6 MSTORE PUSH1 0x4 DUP3 SWAP1 MSTORE PUSH1 0x24 DUP6 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP7 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 DUP7 REVERT JUMPDEST PUSH2 0x3E2 SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI JUMPDEST PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x2692 JUMP JUMPDEST PUSH0 PUSH2 0x27D JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x3D0 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP8 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x449 PUSH2 0x444 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x2273 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH2 0x120 SWAP2 PUSH2 0x472 PUSH2 0x225C JUMP JUMPDEST DUP2 PUSH2 0x100 DUP5 MLOAD PUSH2 0x481 DUP2 PUSH2 0x2308 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 DUP7 DUP3 ADD MSTORE DUP3 PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE DUP3 PUSH1 0xA0 DUP3 ADD MSTORE DUP3 PUSH1 0xC0 DUP3 ADD MSTORE DUP3 PUSH1 0xE0 DUP3 ADD MSTORE ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT AND DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE KECCAK256 PUSH1 0x40 MLOAD PUSH2 0x4D8 DUP2 PUSH2 0x2308 JUMP JUMPDEST DUP2 SLOAD SWAP2 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP3 DUP4 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 PUSH1 0xA0 SHR AND DUP3 MSTORE PUSH1 0xFF PUSH1 0x40 DUP6 ADD SWAP2 PUSH1 0xE0 SHR AND ISZERO ISZERO DUP2 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1 DUP5 ADD SLOAD PUSH1 0x60 DUP7 ADD PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE DUP3 PUSH1 0x80 DUP9 ADD SWAP3 PUSH1 0xA0 SHR AND DUP3 MSTORE PUSH1 0x2 DUP7 ADD SLOAD SWAP4 PUSH1 0xA0 DUP9 ADD SWAP5 DUP6 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x3 DUP9 ADD SLOAD SWAP7 PUSH1 0xC0 DUP11 ADD SWAP8 DUP9 MSTORE PUSH2 0x100 PUSH1 0x5 PUSH1 0x4 DUP12 ADD SLOAD SWAP11 PUSH1 0xE0 DUP14 ADD SWAP12 DUP13 MSTORE ADD SLOAD SWAP11 ADD SWAP10 DUP11 MSTORE PUSH1 0x40 MLOAD SWAP11 DUP12 MSTORE MLOAD AND PUSH1 0x20 DUP11 ADD MSTORE MLOAD ISZERO ISZERO PUSH1 0x40 DUP10 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND PUSH1 0x60 DUP9 ADD MSTORE MLOAD AND PUSH1 0x80 DUP7 ADD MSTORE MLOAD PUSH1 0xA0 DUP6 ADD MSTORE MLOAD PUSH1 0xC0 DUP5 ADD MSTORE MLOAD PUSH1 0xE0 DUP4 ADD MSTORE MLOAD PUSH2 0x100 DUP3 ADD MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x449 PUSH2 0x5D0 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x22AB JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x60C PUSH1 0x4 CALLDATALOAD PUSH2 0x5F5 PUSH2 0x2232 JUMP JUMPDEST SWAP1 PUSH2 0x607 PUSH2 0x602 DUP3 PUSH2 0x2885 JUMP JUMPDEST PUSH2 0x2FB7 JUMP JUMPDEST PUSH2 0x306A JUMP JUMPDEST POP DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x2BD PUSH2 0x62D PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x2AE SWAP2 PUSH2 0x668 SWAP1 DUP3 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH2 0x29D4 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP4 MSTORE KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x6E5 PUSH2 0x221C JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x9CF JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x9C5 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x9BC JUMPI JUMPDEST POP PUSH2 0x9AD JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x981 JUMPI JUMPDEST POP PUSH2 0x755 PUSH2 0x33EE JUMP JUMPDEST PUSH2 0x75D PUSH2 0x33EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x972 JUMPI PUSH2 0x8DD SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD DUP2 DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE DUP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x40 DUP8 KECCAK256 ADD SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP8 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP2 PUSH1 0x1 PUSH1 0x40 DUP10 KECCAK256 ADD SSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x341A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP9 DUP1 LOG4 PUSH2 0x31F0 JUMP JUMPDEST PUSH2 0x93D JUMPI JUMPDEST POP PUSH2 0x8EA JUMPI DUP1 RETURN JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST PUSH2 0x96B SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 PUSH2 0x319C JUMP JUMPDEST POP PUSH0 PUSH2 0x8E2 JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP5 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH0 PUSH2 0x74C JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP5 REVERT JUMPDEST SWAP1 POP ISZERO PUSH0 PUSH2 0x723 JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x71B JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x711 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x9FB PUSH2 0x9F6 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x28F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP1 DUP2 SWAP3 DUP6 MSTORE PUSH1 0x20 DUP6 KECCAK256 SWAP1 DUP6 JUMPDEST DUP2 DUP2 LT PUSH2 0xAEE JUMPI POP POP POP DUP3 PUSH2 0xAA4 SWAP2 SUB DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP3 DUP4 SWAP3 PUSH1 0x20 DUP5 ADD SWAP1 PUSH1 0x20 DUP6 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP2 JUMPDEST DUP2 DUP2 LT PUSH2 0xACC JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xABE JUMP JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xA8E JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xB21 PUSH2 0x444 PUSH2 0x221C JUMP JUMPDEST DUP1 SLOAD PUSH2 0xB2C DUP2 PUSH2 0x28DC JUMP JUMPDEST SWAP1 PUSH2 0xB3A PUSH1 0x40 MLOAD SWAP3 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH2 0xB46 DUP2 PUSH2 0x28DC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 PUSH1 0x1F NOT ADD CALLDATASIZE DUP6 CALLDATACOPY DUP5 JUMPDEST DUP3 DUP2 LT PUSH2 0xBAB JUMPI POP POP POP SWAP1 PUSH1 0x40 MLOAD SWAP3 DUP4 SWAP3 PUSH1 0x20 DUP5 ADD SWAP1 PUSH1 0x20 DUP6 MSTORE MLOAD DUP1 SWAP2 MSTORE PUSH1 0x40 DUP5 ADD SWAP3 SWAP2 JUMPDEST DUP2 DUP2 LT PUSH2 0xB88 JUMPI POP POP POP SUB SWAP1 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND DUP5 MSTORE DUP6 SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xB7A JUMP JUMPDEST PUSH2 0xBB5 DUP2 DUP4 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD DUP6 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 DUP3 LT ISZERO PUSH2 0xBE5 JUMPI PUSH1 0x5 DUP3 SWAP1 SHL DUP6 ADD PUSH1 0x20 ADD MSTORE PUSH1 0x1 ADD PUSH2 0xB55 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xC2F PUSH2 0x221C JUMP JUMPDEST POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER PUSH0 SWAP1 DUP2 MSTORE SWAP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xC6D JUMPI DUP1 RETURN JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 SWAP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x40 PUSH2 0xCAD PUSH2 0x2232 JUMP JUMPDEST SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xD20 PUSH1 0x20 SWAP2 PUSH1 0x4 CALLDATALOAD DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP4 MSTORE PUSH1 0x40 PUSH1 0x24 CALLDATALOAD SWAP2 KECCAK256 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD DUP1 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x80 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND DUP1 ISZERO ISZERO SWAP1 DUP2 PUSH2 0xDAB JUMPI JUMPDEST POP ISZERO PUSH2 0xD99 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8D202ECF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST PUSH1 0x24 SWAP2 PUSH4 0x89A8B8BF PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 MSTORE REVERT JUMPDEST DUP3 MSTORE POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH0 PUSH2 0xD81 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xDE9 PUSH2 0x2F5B JUMP JUMPDEST PUSH2 0xDF1 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0xFF NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x36E JUMPI CALLDATASIZE PUSH1 0x23 DUP3 ADD SLT ISZERO PUSH2 0x36E JUMPI DUP1 PUSH1 0x4 ADD CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0xF8A JUMPI PUSH1 0x24 DUP2 ADD SWAP1 PUSH1 0x24 CALLDATASIZE SWAP2 DUP5 PUSH1 0x5 SHL ADD ADD GT PUSH2 0xF8A JUMPI DUP3 JUMPDEST DUP3 DUP2 LT PUSH2 0xF30 JUMPI POP DUP3 SWAP1 DUP2 JUMPDEST DUP4 DUP4 LT PUSH2 0xEB2 JUMPI DUP5 DUP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0xECE PUSH2 0xEC9 DUP6 DUP8 DUP7 PUSH2 0x28B8 JUMP JUMPDEST PUSH2 0x28A3 JUMP JUMPDEST AND DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP6 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO DUP1 ISZERO PUSH2 0xF1E JUMPI JUMPDEST PUSH2 0xF14 JUMPI POP DUP1 PUSH2 0xF0B PUSH1 0x1 SWAP3 PUSH2 0x2C47 JUMP JUMPDEST SWAP3 JUMPDEST ADD SWAP2 PUSH2 0xEA7 JUMP JUMPDEST SWAP3 PUSH1 0x1 SWAP2 POP PUSH2 0xF0D JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0xEFA JUMP JUMPDEST PUSH1 0x1 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0xF4A PUSH2 0xEC9 DUP4 DUP8 DUP8 PUSH2 0x28B8 JUMP JUMPDEST AND DUP6 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0xFF PUSH1 0x40 DUP7 KECCAK256 SLOAD PUSH1 0xE0 SHR AND ISZERO PUSH2 0xF85 JUMPI PUSH2 0xF7F PUSH2 0x668 PUSH2 0xEC9 DUP4 DUP8 DUP8 PUSH2 0x28B8 JUMP JUMPDEST ADD PUSH2 0xE9B JUMP JUMPDEST PUSH2 0xF7F JUMP JUMPDEST DUP3 DUP1 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0xFD7 PUSH2 0x225C JUMP JUMPDEST PUSH2 0xFDF PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0xFE7 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 PUSH2 0x101F SWAP1 PUSH1 0xE0 DUP4 SWAP1 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL DUP1 ISZERO PUSH2 0x3EF JUMPI PUSH2 0x180 SWAP2 DUP7 SWAP2 PUSH2 0x11A9 JUMPI JUMPDEST POP ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x384 JUMPI PUSH2 0x1195 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x5 PUSH2 0x10A8 PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x4 DUP4 ADD SLOAD DUP7 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SWAP2 ADD SLOAD DUP1 PUSH2 0x116A JUMPI JUMPDEST POP PUSH2 0x10F0 PUSH2 0x10E8 DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP2 DUP3 SLOAD PUSH2 0x27B6 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1104 DUP2 PUSH2 0x10FF DUP5 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x30C1 JUMP JUMPDEST POP DUP1 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x1143 PUSH1 0x40 DUP5 KECCAK256 PUSH1 0x5 PUSH0 SWAP2 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE DUP3 PUSH1 0x2 DUP3 ADD SSTORE DUP3 PUSH1 0x3 DUP3 ADD SSTORE DUP3 PUSH1 0x4 DUP3 ADD SSTORE ADD SSTORE JUMP JUMPDEST PUSH32 0x570EED002BCE0BF86C1E1B74F6A8ADE057760189A0747BBE89C97AB64794DCE8 DUP4 DUP1 LOG3 DUP1 RETURN JUMPDEST DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE PUSH0 PUSH2 0x10DB JUMP JUMPDEST PUSH4 0x35E47AC1 PUSH1 0xE0 SHL DUP5 MSTORE PUSH1 0x4 DUP3 SWAP1 MSTORE PUSH1 0x24 DUP5 REVERT JUMPDEST PUSH2 0x11C2 SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x107A JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x11E1 PUSH2 0x2F5B JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x1239 JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 DUP1 RETURN JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP3 MSTORE PUSH1 0x4 DUP3 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH32 0xA3B917C02656DCE72578274A2691B36A801594DEFB0373242B11F7F302119406 DUP2 DUP1 LOG1 DUP1 RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x12C2 PUSH2 0x2232 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0x12DE JUMPI PUSH2 0x60C SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x306A JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP3 MSTORE PUSH1 0x4 DUP3 REVERT JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI DUP1 PUSH1 0x3 NOT CALLDATASIZE ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x60C PUSH1 0x4 CALLDATALOAD PUSH2 0x132B PUSH2 0x2232 JUMP JUMPDEST SWAP1 PUSH2 0x1338 PUSH2 0x602 DUP3 PUSH2 0x2885 JUMP JUMPDEST PUSH2 0x3024 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x3FA JUMPI DUP2 PUSH1 0x4 ADD SWAP1 PUSH2 0x120 PUSH1 0x3 NOT DUP5 CALLDATASIZE SUB ADD SLT PUSH2 0x3FA JUMPI PUSH2 0x137D PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1385 PUSH2 0x2FFD JUMP JUMPDEST PUSH2 0x138E DUP3 PUSH2 0x28A3 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP2 AND SWAP3 DUP4 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 KECCAK256 SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x13C5 DUP2 PUSH1 0xFF DUP5 PUSH1 0xE0 SHR AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x84 DUP8 ADD CALLDATALOAD SWAP5 PUSH1 0xC4 DUP9 ADD SWAP4 PUSH2 0x13E8 PUSH4 0xFFFFFFFF PUSH2 0x13E1 DUP8 PUSH2 0x27EB JUMP JUMPDEST AND DUP9 PUSH2 0x27FC JUMP JUMPDEST SWAP5 PUSH2 0x13F8 PUSH1 0x64 DUP12 ADD CALLDATALOAD DUP1 SWAP8 PUSH2 0x2795 JUMP JUMPDEST SWAP8 PUSH1 0x5 DUP9 ADD SWAP6 DUP7 SLOAD PUSH2 0x1661 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x4B7827DF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE SWAP7 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x165D JUMPI SWAP1 DUP9 SWAP5 SWAP4 SWAP3 SWAP2 PUSH1 0x24 DUP7 ADD MSTORE PUSH1 0x24 DUP14 ADD PUSH2 0x1448 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x44 DUP7 ADD MSTORE PUSH1 0x44 DUP14 ADD PUSH2 0x1463 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x64 DUP7 ADD MSTORE PUSH1 0x84 DUP6 ADD MSTORE PUSH1 0xA4 DUP5 ADD MSTORE PUSH1 0xA4 DUP12 ADD PUSH2 0x1488 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0xC4 DUP5 ADD MSTORE PUSH2 0x149C SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH1 0xE4 DUP4 ADD MSTORE PUSH1 0xE4 DUP11 ADD SWAP10 PUSH2 0x14B5 DUP12 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x104 DUP5 ADD MSTORE PUSH2 0x104 ADD PUSH2 0x14CE SWAP2 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x124 DUP4 ADD PUSH2 0x120 SWAP1 MSTORE PUSH2 0x144 DUP4 ADD SWAP1 PUSH2 0x14E7 SWAP3 PUSH2 0x2865 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 SWAP2 SUB DUP2 GAS SWAP4 PUSH1 0x20 SWAP5 STATICCALL SWAP4 DUP5 ISZERO PUSH2 0x1650 JUMPI DUP2 SWAP5 PUSH2 0x160D JUMPI JUMPDEST POP PUSH1 0x20 SWAP8 PUSH2 0x15F5 PUSH32 0x3D2EF8C85DEBAB05FDF59FF23A2B0F231CE3544DD7B82D08DBEAF5367C7A5AE7 SWAP7 DUP7 DUP11 SWAP10 SWAP7 PUSH4 0xFFFFFFFF SWAP7 PUSH1 0x40 DUP8 DUP2 SWAP12 PUSH2 0x15FA SWAP10 MSTORE DUP16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 MSTORE KECCAK256 SWAP1 PUSH1 0x80 SHR PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE DUP8 PUSH1 0x3 DUP5 ADD SSTORE PUSH2 0x15C4 PUSH2 0x159D DUP7 PUSH2 0x27EB JUMP JUMPDEST PUSH1 0x1 DUP6 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0xA0 SWAP3 SWAP1 SWAP3 SHL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST SSTORE DUP1 SLOAD PUSH2 0x15D9 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x22AB JUMP JUMPDEST PUSH2 0x15E4 DUP8 DUP3 SLOAD PUSH2 0x2795 JUMP JUMPDEST SWAP1 SSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2C47 JUMP JUMPDEST PUSH2 0x27EB JUMP JUMPDEST DUP4 MLOAD SWAP3 DUP4 MSTORE AND DUP7 DUP3 ADD MSTORE LOG2 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST SWAP6 SWAP3 SWAP2 SWAP1 SWAP4 POP PUSH1 0x20 DUP7 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1648 JUMPI JUMPDEST DUP2 PUSH2 0x162C PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI SWAP5 MLOAD SWAP2 SWAP5 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0x20 PUSH2 0x152A JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x161F JUMP JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 RETURNDATASIZE SWAP1 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP6 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP10 ADD SLOAD SWAP1 PUSH2 0x167D SWAP1 PUSH2 0x10E8 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x22AB JUMP JUMPDEST SWAP1 SSTORE DUP6 SLOAD DUP5 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE PUSH0 PUSH2 0x1405 JUMP JUMPDEST POP CALLVALUE PUSH2 0x3FA JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x3FA JUMPI PUSH1 0x20 PUSH2 0x9FB PUSH1 0x4 CALLDATALOAD PUSH2 0x2885 JUMP JUMPDEST POP CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x1644 JUMPI DUP2 PUSH1 0x4 ADD SWAP2 PUSH2 0x160 PUSH1 0x3 NOT DUP3 CALLDATASIZE SUB ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x170B PUSH2 0x2EFF JUMP JUMPDEST PUSH2 0x1713 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x44 DUP2 ADD SWAP3 PUSH2 0x1721 DUP5 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x172A DUP6 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SUB PUSH2 0x1D7E JUMPI POP PUSH1 0x84 DUP3 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1753 DUP4 PUSH2 0x27C3 JUMP JUMPDEST AND ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x64 DUP4 ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x176F DUP4 PUSH2 0x27C3 JUMP JUMPDEST AND ISZERO PUSH2 0x1D12 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 PUSH2 0x17A9 DUP8 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x17B2 DUP5 PUSH2 0x27C3 JUMP JUMPDEST SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x17C4 DUP8 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x17CD DUP7 PUSH2 0x27D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE1E9B475 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP11 DUP6 AND PUSH1 0x24 DUP13 ADD MSTORE SWAP4 AND PUSH1 0x44 DUP11 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x64 DUP9 ADD MSTORE PUSH2 0x124 DUP7 ADD CALLDATALOAD PUSH1 0x84 DUP9 ADD DUP2 SWAP1 MSTORE SWAP7 SWAP1 PUSH1 0x20 DUP3 PUSH1 0xA4 DUP2 DUP5 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x1CCD JUMPI JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP3 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP9 SWAP1 PUSH1 0xE0 SHR PUSH1 0xFF AND PUSH2 0x1CBA JUMPI PUSH1 0xFF PUSH2 0x186D PUSH2 0x1868 DUP10 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x22D0 JUMP JUMPDEST SLOAD AND PUSH2 0x1C07 JUMPI JUMPDEST PUSH1 0xC4 DUP9 ADD CALLDATALOAD SWAP10 PUSH2 0x104 DUP10 ADD SWAP9 PUSH2 0x1889 DUP11 PUSH2 0x27EB JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x1899 SWAP1 DUP14 PUSH2 0x27FC JUMP JUMPDEST SWAP3 PUSH1 0xA4 DUP3 ADD CALLDATALOAD SWAP4 DUP5 PUSH2 0x18AA SWAP2 PUSH2 0x2795 JUMP JUMPDEST SWAP11 PUSH1 0x40 MLOAD SWAP14 DUP15 SWAP6 DUP7 SWAP6 PUSH4 0x1163B3F9 PUSH1 0xE3 SHL DUP8 MSTORE PUSH1 0x4 DUP8 ADD PUSH1 0x20 SWAP1 MSTORE PUSH2 0x18CE DUP13 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x24 DUP9 ADD MSTORE PUSH1 0x24 DUP7 ADD PUSH2 0x18E9 SWAP1 PUSH2 0x280F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x44 DUP9 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0x1909 SWAP1 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0x64 DUP8 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1920 DUP14 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0x84 DUP8 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1937 DUP15 PUSH2 0x2248 JUMP JUMPDEST AND PUSH1 0xA4 DUP8 ADD MSTORE PUSH1 0xC4 DUP7 ADD MSTORE PUSH1 0xE4 DUP6 ADD MSTORE PUSH1 0xE4 DUP4 ADD PUSH2 0x1954 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x104 DUP6 ADD MSTORE PUSH2 0x1969 SWAP1 PUSH2 0x2823 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND PUSH2 0x124 DUP5 ADD MSTORE PUSH2 0x144 DUP4 ADD MSTORE PUSH2 0x144 ADD PUSH2 0x1989 SWAP1 DUP8 PUSH2 0x2834 JUMP JUMPDEST PUSH2 0x164 DUP4 ADD PUSH2 0x160 SWAP1 MSTORE PUSH2 0x184 DUP4 ADD SWAP1 PUSH2 0x19A2 SWAP3 PUSH2 0x2865 JUMP JUMPDEST SUB DUP2 GAS SWAP4 PUSH1 0x20 SWAP5 STATICCALL SWAP8 DUP9 ISZERO PUSH2 0x363 JUMPI DUP3 SWAP9 PUSH2 0x1BCC JUMPI JUMPDEST POP SWAP3 PUSH1 0x5 DUP8 DUP10 PUSH1 0x20 SWAP11 SWAP6 DUP10 PUSH2 0x1B53 DUP8 PUSH32 0x259739C18C8E83F3E1C8B4C6E33F610B34846E32F2DECFBF4F90B950E8D9D36B SWAP11 DUP16 SWAP11 DUP8 SWAP14 SWAP11 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP12 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH1 0x80 SHR PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH4 0xFFFFFFFF PUSH2 0x1A35 PUSH2 0x1A2F PUSH2 0x1A29 DUP13 PUSH2 0x27C3 JUMP JUMPDEST SWAP7 PUSH2 0x27D7 JUMP JUMPDEST SWAP10 PUSH2 0x27C3 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP10 DUP11 SWAP7 PUSH2 0x1A45 DUP9 PUSH2 0x2308 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP14 DUP9 ADD SWAP2 AND DUP2 MSTORE PUSH1 0x40 DUP8 ADD SWAP1 PUSH1 0x1 DUP3 MSTORE PUSH1 0x60 DUP9 ADD SWAP5 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP6 MSTORE PUSH1 0x40 PUSH1 0x80 DUP10 ADD SWAP4 DUP1 DUP6 MSTORE PUSH1 0xA0 DUP11 ADD SWAP9 DUP10 MSTORE PUSH2 0x100 PUSH1 0xC0 DUP12 ADD SWAP11 DUP3 DUP13 MSTORE PUSH1 0xE0 DUP2 ADD SWAP13 DUP14 MSTORE ADD SWAP12 DUP2 DUP14 MSTORE DUP2 MSTORE DUP16 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 MSTORE KECCAK256 SWAP12 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND AND PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP14 SLOAD AND OR DUP13 SSTORE MLOAD SWAP1 DUP12 SLOAD SWAP1 PUSH1 0xFF PUSH1 0xE0 SHL SWAP1 MLOAD ISZERO ISZERO PUSH1 0xE0 SHL AND SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0xA0 SHL SWAP1 PUSH1 0xA0 SHL AND SWAP1 PUSH9 0xFFFFFFFFFFFFFFFFFF PUSH1 0xA0 SHL NOT AND OR OR DUP11 SSTORE PUSH1 0x1 DUP11 ADD SWAP3 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 MLOAD AND AND PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB NOT DUP5 SLOAD AND OR DUP4 SSTORE MLOAD AND DUP2 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL SWAP1 PUSH1 0xA0 SHL AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND OR SWAP1 SSTORE JUMP JUMPDEST MLOAD PUSH1 0x2 DUP7 ADD SSTORE MLOAD PUSH1 0x3 DUP6 ADD SSTORE MLOAD PUSH1 0x4 DUP5 ADD SSTORE MLOAD SWAP2 ADD SSTORE PUSH2 0x1B7E DUP5 PUSH2 0x1B79 PUSH2 0x444 DUP5 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x319C JUMP JUMPDEST POP PUSH2 0x1B8B PUSH2 0x5D0 DUP3 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x1B96 DUP7 DUP3 SLOAD PUSH2 0x2795 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1BA9 PUSH2 0x1BA4 DUP3 PUSH2 0x27C3 JUMP JUMPDEST PUSH2 0x2C47 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 PUSH2 0x1BBB SWAP1 PUSH2 0x27C3 JUMP JUMPDEST AND SWAP4 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG3 PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST SWAP5 SWAP2 SWAP8 POP SWAP3 PUSH1 0x20 DUP6 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1BFF JUMPI JUMPDEST DUP2 PUSH2 0x1BEA PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI SWAP4 MLOAD SWAP7 SWAP1 SWAP4 SWAP3 PUSH1 0x5 PUSH2 0x19B8 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1BDD JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1C3A DUP9 PUSH2 0x27C3 JUMP JUMPDEST SWAP1 DUP1 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2C741F79 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP1 SWAP3 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1C9A JUMPI JUMPDEST POP PUSH2 0x1C8D PUSH2 0x1868 DUP9 PUSH2 0x27C3 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x1874 JUMP JUMPDEST PUSH2 0x1CA7 SWAP2 SWAP5 POP PUSH0 SWAP1 PUSH2 0x2338 JUMP JUMPDEST PUSH0 SWAP3 PUSH0 PUSH2 0x1C80 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST DUP9 PUSH4 0x3AD69071 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1D0A JUMPI JUMPDEST DUP2 PUSH2 0x1CE9 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 PUSH0 PUSH2 0x1827 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1CDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x72367E21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0x6461746153657276696365 PUSH1 0xA8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x72367E21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x39B2B93B34B1B2A83937BB34B232B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 SWAP1 REVERT JUMPDEST PUSH4 0x79CBB81 PUSH1 0xE0 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE ADDRESS PUSH1 0x24 MSTORE PUSH1 0x44 SWAP1 REVERT JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x1DBB PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 PUSH2 0x1DF4 SWAP1 PUSH1 0xE0 DUP4 SWAP1 SHR PUSH1 0xFF AND PUSH2 0x2630 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1A0 DUP3 PUSH1 0x24 DUP2 DUP5 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x201A JUMPI JUMPDEST POP PUSH2 0x180 PUSH0 SWAP3 ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2006 JUMPI PUSH2 0x1FA0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 PUSH1 0xA0 SHR AND TIMESTAMP GT ISZERO PUSH2 0x1F95 JUMPI JUMPDEST DUP1 PUSH2 0x1F7F JUMPI POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x5 PUSH2 0x1E9C PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x4 DUP4 ADD SLOAD PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SWAP2 ADD SLOAD DUP1 PUSH2 0x1F52 JUMPI JUMPDEST POP PUSH2 0x1EDE PUSH2 0x10E8 DUP5 PUSH2 0x22AB JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1EED DUP2 PUSH2 0x10FF DUP5 PUSH2 0x2273 JUMP JUMPDEST POP DUP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x1F2C PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x5 PUSH0 SWAP2 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE DUP3 PUSH1 0x2 DUP3 ADD SSTORE DUP3 PUSH1 0x3 DUP3 ADD SSTORE DUP3 PUSH1 0x4 DUP3 ADD SSTORE ADD SSTORE JUMP JUMPDEST PUSH32 0x370620D8B2B6B19922292127954BE721558200B2233A982111AB5EAC961DCD1E PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE DUP4 PUSH2 0x1ED1 JUMP JUMPDEST DUP3 PUSH4 0xF8339019 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP PUSH1 0x2 DUP4 ADD SLOAD PUSH2 0x1E78 JUMP JUMPDEST PUSH1 0x24 SWAP2 POP PUSH1 0x20 SWAP1 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0xB6CD33A7 PUSH1 0xE0 SHL DUP3 MSTORE DUP8 PUSH1 0x4 DUP4 ADD MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x1FD4 JUMPI JUMPDEST POP PUSH2 0x1E78 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x1FFE JUMPI JUMPDEST DUP2 PUSH2 0x1FEF PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD DUP5 PUSH2 0x1FCE JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x1FE2 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2034 SWAP2 SWAP3 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST SWAP1 DUP6 PUSH2 0x1E4D JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x2098 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x20A1 DUP2 PUSH2 0x2273 JUMP JUMPDEST DUP1 SLOAD SWAP1 PUSH0 JUMPDEST DUP3 DUP2 LT PUSH2 0x20B8 JUMPI PUSH2 0x20B6 DUP5 PUSH2 0x2C47 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH2 0x20DC PUSH2 0x20C8 PUSH1 0x1 SWAP4 DUP6 PUSH2 0x30AC JUMP JUMPDEST DUP5 DUP1 PUSH1 0x80 SHL SUB NOT SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND PUSH2 0x29D4 JUMP JUMPDEST ADD PUSH2 0x20A6 JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT PUSH2 0x2104 PUSH2 0x225C JUMP JUMPDEST AND PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH2 0x20B6 PUSH2 0x2146 PUSH2 0x221C JUMP JUMPDEST PUSH2 0x237C JUMP JUMPDEST CALLVALUE PUSH2 0x1644 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x1644 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x1644 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x220B JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x21FA JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x219B JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21B5 JUMPI JUMPDEST POP DUP4 PUSH2 0x2194 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21CF JUMPI JUMPDEST POP DUP4 PUSH2 0x21AE JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x21E9 JUMPI JUMPDEST POP DUP4 PUSH2 0x21C8 JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x21E2 JUMP JUMPDEST PUSH4 0x6DE1CD7F PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x218D JUMP JUMPDEST PUSH4 0x8D202ECF PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x2186 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x479BA94FAF2FD6CABF7893623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB03 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x479BA94FAF2FD6CABF7893623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB04 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH2 0x120 DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2324 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR PUSH2 0x2324 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND DUP2 MSTORE SWAP2 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH2 0x2385 DUP2 PUSH2 0x2273 JUMP JUMPDEST SWAP1 PUSH0 SWAP2 SLOAD PUSH2 0x2610 JUMPI PUSH1 0xFF PUSH2 0x2398 DUP3 PUSH2 0x22D0 JUMP JUMPDEST SLOAD AND PUSH2 0x2524 JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP1 PUSH32 0x0 AND PUSH1 0x20 DUP6 DUP1 PUSH2 0x240E DUP8 DUP6 ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 DUP6 GAS STATICCALL SWAP5 DUP6 ISZERO PUSH2 0x2519 JUMPI DUP4 SWAP6 PUSH2 0x24E5 JUMPI JUMPDEST POP DUP5 PUSH2 0x242F JUMPI JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 EXTCODESIZE ISZERO PUSH2 0xF8A JUMPI PUSH1 0x40 MLOAD PUSH4 0xF93F1CD PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP3 SWAP1 DUP3 SWAP1 PUSH1 0x64 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL DUP1 ISZERO PUSH2 0x363 JUMPI PUSH2 0x24D0 JUMPI JUMPDEST POP POP PUSH1 0x20 DUP2 PUSH2 0x24AA PUSH32 0x9BB27B15352E734811DC60E560D3862AF1F1E9DA5066EE6F7BC1BD880A031112 SWAP4 PUSH2 0x22D0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2428 JUMP JUMPDEST PUSH2 0x24DB DUP3 DUP1 SWAP3 PUSH2 0x2338 JUMP JUMPDEST PUSH2 0x3FA JUMPI DUP1 PUSH2 0x247B JUMP JUMPDEST SWAP1 SWAP5 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2511 JUMPI JUMPDEST DUP2 PUSH2 0x2501 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD SWAP4 PUSH0 PUSH2 0x2421 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x24F4 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE DUP6 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF940E385 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE SWAP1 PUSH0 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 PUSH2 0x25FB JUMPI JUMPDEST POP PUSH2 0x25B7 JUMPI POP POP JUMP JUMPDEST PUSH2 0x25C0 DUP2 PUSH2 0x22D0 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH32 0xD900FAAB28619592E985FE698E5EDF2E0819A9D670C3B2547AFB60504AA115FB DUP4 DUP1 LOG2 PUSH2 0x239F JUMP JUMPDEST PUSH2 0x2608 SWAP2 SWAP4 POP PUSH0 SWAP1 PUSH2 0x2338 JUMP JUMPDEST PUSH0 SWAP2 PUSH0 PUSH2 0x25AE JUMP JUMPDEST PUSH4 0xA017A1B1 PUSH1 0xE0 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST ISZERO PUSH2 0x2638 JUMPI POP JUMP JUMPDEST PUSH4 0x24B1C479 PUSH1 0xE2 SHL PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x4 MSTORE PUSH1 0x24 SWAP1 REVERT JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST MLOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x1A0 SWAP2 SUB SLT PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD SWAP1 PUSH2 0x1A0 DUP3 ADD SWAP1 DUP3 DUP3 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT OR PUSH2 0x2324 JUMPI PUSH2 0x180 SWAP2 PUSH1 0x40 MSTORE PUSH2 0x26CA DUP2 PUSH2 0x2659 JUMP JUMPDEST DUP4 MSTORE PUSH2 0x26D8 PUSH1 0x20 DUP3 ADD PUSH2 0x2659 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x26E9 PUSH1 0x40 DUP3 ADD PUSH2 0x2659 JUMP JUMPDEST PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26FA PUSH1 0x60 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x270B PUSH1 0x80 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x271C PUSH1 0xA0 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP2 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP2 ADD MLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH2 0x2742 PUSH2 0x100 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x2755 PUSH2 0x120 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x120 DUP5 ADD MSTORE PUSH2 0x2768 PUSH2 0x140 DUP3 ADD PUSH2 0x2681 JUMP JUMPDEST PUSH2 0x140 DUP5 ADD MSTORE PUSH2 0x277B PUSH2 0x160 DUP3 ADD PUSH2 0x266D JUMP JUMPDEST PUSH2 0x160 DUP5 ADD MSTORE ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x1644 JUMPI PUSH2 0x180 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x27A2 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x27A2 JUMPI JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x27A2 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF DUP3 AND DUP3 SUB PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 CALLDATALOAD PUSH1 0x1E NOT DUP3 CALLDATASIZE SUB ADD DUP2 SLT ISZERO PUSH2 0x1644 JUMPI ADD PUSH1 0x20 DUP2 CALLDATALOAD SWAP2 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT PUSH2 0x1644 JUMPI DUP2 CALLDATASIZE SUB DUP4 SGT PUSH2 0x1644 JUMPI JUMP JUMPDEST SWAP1 DUP1 PUSH1 0x20 SWAP4 SWAP3 DUP2 DUP5 MSTORE DUP5 DUP5 ADD CALLDATACOPY PUSH0 DUP3 DUP3 ADD DUP5 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND ADD ADD SWAP1 JUMP JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT DUP2 AND DUP2 SUB PUSH2 0x1644 JUMPI SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x28C8 JUMPI PUSH1 0x5 SHL ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT PUSH2 0x2324 JUMPI PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x294C PUSH1 0x20 PUSH2 0x2901 DUP4 PUSH2 0x22AB JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP4 SWAP1 SWAP3 DUP4 SWAP2 DUP3 SWAP2 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x29A2 JUMPI JUMPDEST POP DUP2 DUP2 LT PUSH2 0x2996 JUMPI POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x299F SWAP2 PUSH2 0x27B6 JUMP JUMPDEST SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x29CC JUMPI JUMPDEST DUP2 PUSH2 0x29BD PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2988 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x29B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34BA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xE0 DUP2 SWAP1 SHR PUSH1 0xFF AND ISZERO PUSH2 0x2C42 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x469EE7 PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1A0 DUP2 PUSH1 0x24 DUP2 DUP7 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2C23 JUMPI JUMPDEST POP PUSH2 0x180 DUP2 ADD MLOAD PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2006 JUMPI ISZERO PUSH2 0x2428 JUMPI PUSH1 0x5 DUP5 ADD SWAP1 DUP2 SLOAD ISZERO ISZERO SWAP1 DUP2 PUSH2 0x2C03 JUMPI JUMPDEST POP PUSH2 0x2B8A JUMPI JUMPDEST POP POP PUSH1 0x2 DUP3 ADD SWAP1 PUSH1 0x24 PUSH1 0x20 DUP4 SLOAD SWAP3 PUSH1 0x40 MLOAD SWAP3 DUP4 DUP1 SWAP3 PUSH4 0xB6CD33A7 PUSH1 0xE0 SHL DUP3 MSTORE DUP10 PUSH1 0x4 DUP4 ADD MSTORE GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2B58 JUMPI JUMPDEST POP DUP1 DUP3 SUB PUSH2 0x2AD0 JUMPI POP POP POP POP POP JUMP JUMPDEST PUSH32 0x9645923A9D076AF2798E345C9E427AFD40E7679993C496D420EE25A9A891406 SWAP4 DUP2 PUSH1 0x40 SWAP5 SSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 SLOAD AND DUP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x2B2B DUP3 PUSH2 0x2B26 DUP6 DUP8 PUSH0 KECCAK256 SLOAD PUSH2 0x27B6 JUMP JUMPDEST PUSH2 0x2795 JUMP JUMPDEST SWAP1 PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE DUP4 PUSH0 KECCAK256 SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2428 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2B82 JUMPI JUMPDEST DUP2 PUSH2 0x2B73 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2AC1 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2B66 JUMP JUMPDEST PUSH0 DUP1 SWAP3 PUSH1 0x3 DUP7 ADD SWAP1 DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x2BBF PUSH1 0x40 DUP5 KECCAK256 SWAP2 DUP3 SLOAD PUSH2 0x27B6 JUMP JUMPDEST SWAP1 SSTORE DUP3 SLOAD DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x345A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT AND SWAP1 SSTORE SSTORE PUSH1 0x1 DUP5 ADD DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 DUP1 PUSH2 0x2A8C JUMP JUMPDEST SWAP1 POP PUSH4 0xFFFFFFFF PUSH2 0x140 DUP2 PUSH1 0x1 DUP9 ADD SLOAD PUSH1 0xA0 SHR AND SWAP3 ADD MLOAD AND LT ISZERO PUSH0 PUSH2 0x2A86 JUMP JUMPDEST PUSH2 0x2C3C SWAP2 POP PUSH2 0x1A0 RETURNDATASIZE DUP2 GT PUSH2 0x3E8 JUMPI PUSH2 0x3DA DUP2 DUP4 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x2A61 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x35AF580F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 DUP2 AND SWAP3 PUSH32 0x0 SWAP1 SWAP2 AND SWAP2 SWAP1 PUSH1 0x20 DUP3 DUP1 PUSH2 0x2CB9 DUP5 DUP9 ADDRESS PUSH1 0x4 DUP6 ADD PUSH2 0x2359 JUMP JUMPDEST SUB DUP2 DUP7 GAS STATICCALL SWAP2 DUP3 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP3 PUSH2 0x2ECB JUMPI JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x349A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP5 SWAP1 SWAP2 DUP3 DUP5 LT PUSH2 0x2D05 JUMPI JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2D0F DUP5 DUP5 PUSH2 0x27B6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP4 SWAP2 SWAP1 PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP9 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1CAF JUMPI PUSH0 SWAP2 PUSH2 0x2E99 JUMPI JUMPDEST POP DUP1 DUP3 LT ISZERO PUSH2 0x2E91 JUMPI POP SWAP3 JUMPDEST DUP4 PUSH2 0x2D7F JUMPI JUMPDEST POP POP PUSH2 0x2CFD JUMP JUMPDEST PUSH1 0x20 PUSH0 SWAP2 PUSH1 0x44 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP4 MSTORE DUP13 PUSH1 0x4 DUP5 ADD MSTORE DUP10 PUSH1 0x24 DUP5 ADD MSTORE GAS CALL DUP1 ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x2E5A JUMPI JUMPDEST POP DUP6 EXTCODESIZE ISZERO PUSH2 0x1644 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8340F549 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x64 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP4 DUP5 ISZERO PUSH2 0x1CAF JUMPI DUP2 PUSH1 0x60 SWAP5 PUSH2 0x2E2C SWAP3 PUSH32 0xD3F0E58AA4675AC50DA832CC55494B3F7205DE4EAF8F3D703DA23B48105DB95C SWAP8 PUSH2 0x2E4A JUMPI JUMPDEST POP PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG2 PUSH0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH2 0x2D78 JUMP JUMPDEST PUSH0 PUSH2 0x2E54 SWAP2 PUSH2 0x2338 JUMP JUMPDEST PUSH0 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2E89 JUMPI JUMPDEST DUP2 PUSH2 0x2E73 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2DAF JUMPI PUSH0 DUP1 REVERT JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2E66 JUMP JUMPDEST SWAP1 POP SWAP3 PUSH2 0x2D72 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2EC3 JUMPI JUMPDEST DUP2 PUSH2 0x2EB4 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD PUSH0 PUSH2 0x2D66 JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2EA7 JUMP JUMPDEST SWAP1 SWAP2 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2EF7 JUMPI JUMPDEST DUP2 PUSH2 0x2EE7 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x2338 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x1644 JUMPI MLOAD SWAP1 PUSH0 PUSH2 0x2CCC JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x2EDA JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB456 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2F37 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34DA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2F93 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x353A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2FE7 JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x351A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x3015 JUMPI JUMP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x302E DUP3 DUP3 PUSH2 0x32AE JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x3039 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x3066 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x319C JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x3074 DUP3 DUP3 PUSH2 0x3352 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x307F JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x343A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x3066 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x30C1 JUMP JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x28C8 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x3194 JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x27A2 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x27A2 JUMPI DUP2 DUP2 SUB PUSH2 0x3149 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x3135 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x3116 DUP3 DUP3 PUSH2 0x30AC JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x317F PUSH2 0x3159 PUSH2 0x3169 SWAP4 DUP7 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x30AC JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x30FD JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x31E9 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x2324 JUMPI PUSH2 0x31D6 PUSH2 0x3169 DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x30AC JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE803 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x32A9 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE803 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x347A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x334C JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x334C JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x34FA PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x355A PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x340A JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E82371705932000479BA94FAF2FD6CA 0xBF PUSH25 0x93623BFA7A552C10E95E15DE10BC58F1E58F2BB8FB007935BD EXP JUMPF 0x4BC3 0x1F SLOAD DUP13 EQ 0xDB LOG4 0xD3 PUSH29 0x5C64B3F8CA900CB468FB8ABD54D5894F55479BA94FAF2FD6CABF789362 EXTCODESIZE STATICCALL PUSH27 0x552C10E95E15DE10BC58F1E58F2BB8FB02479BA94FAF2FD6CABF78 SWAP4 PUSH3 0x3BFA7A SSTORE 0x2C LT 0xE9 MCOPY ISZERO 0xDE LT 0xBC PC CALL JUMPF 0x8F2B 0xB8 EXTSTATICCALL ADD SWAP8 PUSH7 0x7070C54EF182B0 CREATE2 DUP6 DUP12 SUB 0x4B 0xEA 0xC1 0xB6 RETURN ADDMOD SWAP11 LOG2 0xD3 XOR DUP12 0xB1 0xE8 SWAP3 SWAP16 0x4F 0xA9 0xB9 0x29 MUL 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46DF0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 CREATE ADDRESS PUSH0 0xD3 MLOAD 0xE2 DELEGATECALL 0x2E PUSH1 0xE7 JUMPF 0x6BE7 0xD0 SUB 0xB3 0xC4 0xC3 0xB5 0x28 PUSH32 0x7B57D4D250450410EF1764736F6C634300082100330000000000000000000000 ","sourceMap":"1851:21173:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;-1:-1:-1;;;;;;1851:21173:43;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;11778:78;;1851:21173;;;;;;11778:78;:::i;:::-;1851:21173;;-1:-1:-1;;;;;;11920:45:43;;1851:21173;11920:45;;1851:21173;;;11920:45;1851:21173;11920:45;1851:21173;11920:19;-1:-1:-1;;;;;1851:21173:43;11920:45;;;;;;12049:15;11920:45;;;;;1851:21173;12049:15;;1851:21173;;;;;;;;12049:65;1851:21173;;;;;;;;;11743:12;12282:62;12278:353;;1851:21173;12852:11;;12889:12;12852:11;;:::i;:::-;1851:21173;-1:-1:-1;;;;;1851:21173:43;12889:12;:::i;:::-;1851:21173;;12278:353;1851:21173;12373:16;;1851:21173;-1:-1:-1;;;;;1851:21173:43;12411:14;;:19;1851:21173;;12493:64;;;;;;;1851:21173;;;11920:45;1851:21173;;;;;;;;;12493:64;;;1851:21173;12493:64;;1851:21173;12493:64;;;;;;;;12278:353;-1:-1:-1;;1851:21173:43;;12889:12;;12852:11;;1851:21173;;-1:-1:-1;;;;;1851:21173:43;;12576:44;;;;12278:353;;;;12493:64;;;;;:::i;:::-;1851:21173;;12493:64;;;;1851:21173;;;;12493:64;1851:21173;;;;;;;;;12493:64;1851:21173;;;;-1:-1:-1;;;1851:21173:43;;;;11920:45;1851:21173;;;-1:-1:-1;;;1851:21173:43;;;;;11920:45;1851:21173;;;-1:-1:-1;;;1851:21173:43;;;;;;11920:45;1851:21173;;;-1:-1:-1;;;1851:21173:43;;;;;11920:45;1851:21173;;11920:45;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;19219:42;1851:21173;;:::i;:::-;19219:42;:::i;:::-;1851:21173;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;19023:24;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;18126:37;1851:21173;;:::i;:::-;18126:37;:::i;1851:21173::-;;;;;;;-1:-1:-1;;1851:21173:43;;;;5815:26:21;1851:21173:43;;;;:::i;:::-;5785:18:21;3283:4;5785:18;;;:::i;:::-;3283:4;:::i;:::-;5815:26;:::i;:::-;;1851:21173:43;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;15153:12;1851:21173;;:::i;:::-;-1:-1:-1;;;;;;1851:21173:43;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;15116:11;;15004:78;;1851:21173;;;;;;15004:78;:::i;:::-;15116:11;:::i;1851:21173::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;4301:16:23;1851:21173:43;-1:-1:-1;;;;;1851:21173:43;;4724:16:23;;:34;;;;1851:21173:43;4803:1:23;4788:16;:50;;;;1851:21173:43;4853:13:23;:30;;;;1851:21173:43;4849:91:23;;;-1:-1:-1;;1851:21173:43;;4803:1:23;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;4977:67:23;;1851:21173:43;6891:76:23;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;;;5377:22:45;;1851:21173:43;;4241:31:22;6946:18:21;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;4803:1:23;1851:21173:43;;;4967:24:21;1851:21173:43;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;4803:1:23;1851:21173:43;;;6974:24:21;1851:21173:43;7025:52:21;-1:-1:-1;;;;;;;;;;;7025:52:21;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;4803:1:23;1851:21173:43;;;4967:24:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;4803:1:23;1851:21173:43;;;6974:24:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;7025:52:21;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;4803:1:23;1851:21173:43;;;4967:24:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;4803:1:23;1851:21173:43;;;6974:24:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;7025:52:21;;;4241:31:22;:::i;:::-;4282:71;;1851:21173:43;5064:101:23;;;1851:21173:43;;5064:101:23;1851:21173:43;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;5140:14:23;1851:21173:43;;;4803:1:23;1851:21173:43;;5140:14:23;1851:21173:43;;4282:71:22;11511:50:41;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;11511:50:41;:::i;:::-;;4282:71:22;;;1851:21173:43;-1:-1:-1;;;1851:21173:43;;;;;4977:67:23;-1:-1:-1;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;4977:67:23;;;4849:91;-1:-1:-1;;;4906:23:23;;1851:21173:43;4906:23:23;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:23;;4724:34;;;-1:-1:-1;4724:34:23;;1851:21173:43;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;2332:56;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;19533:30;1851:21173;;:::i;19533:30::-;1851:21173;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1851:21173:43;;;;19672:13;19687:9;;;;;;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;19698:3;5853:18:41;;;;:::i;:::-;1851:21173:43;;;;19533:21;1851:21173;;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;19672:13;;1851:21173;-1:-1:-1;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;966:10:24;-1:-1:-1;1851:21173:43;;;;;;;;;;4516:23:21;4512:108;;1851:21173:43;;4512:108:21;-1:-1:-1;;;4562:47:21;;966:10:24;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;4562:47:21;1851:21173:43;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;3949:31:21;1851:21173:43;;;;;;-1:-1:-1;1851:21173:43;;;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;5853:18:41;1851:21173:43;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;5853:18:41;:::i;:::-;1851:21173:43;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;-1:-1:-1;;;;;;1851:21173:43;5801:25;;;;;:61;;1851:21173;;;;;;;-1:-1:-1;;;1851:21173:43;;;;;;;;;;;;;;;;5801:61;1851:21173;;-1:-1:-1;;;;;;;;;;;;1851:21173:43;;;;;;;;;;-1:-1:-1;5801:61:43;;1851:21173;;;;;;;;;;;;;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;3300:4;1851:21173:43;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;3319:20:25;1851:21173:43;;;966:10:24;1851:21173:43;;3319:20:25;1851:21173:43;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;15928:13;15943:23;;;;;;-1:-1:-1;16505:18:43;;;16553:23;;;;;;1851:21173;;;16578:3;-1:-1:-1;;;;;;16624:15:43;;;;;;:::i;:::-;;:::i;:::-;1851:21173;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;-1:-1:-1;;;;;1851:21173:43;;16666:17;;:38;;;;16578:3;16662:52;;16743:3;;;15992:12;16743:3;;:::i;:::-;16578;16538:13;1851:21173;16538:13;;;16662:52;16706:8;15992:12;16706:8;;;;16666:38;-1:-1:-1;;;;;;1851:21173:43;;16687:17;;16666:38;;15968:3;15992:12;;-1:-1:-1;;;;;;16005:15:43;;1851:21173;16005:15;;;:::i;:::-;1851:21173;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;15991:37;15987:51;;16075:15;;;;;;;:::i;:::-;1851:21173;15928:13;;15987:51;16030:8;;1851:21173;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;-1:-1:-1;;;;;;1851:21173:43;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;10430:78;;1851:21173;;;;;;10430:78;:::i;:::-;1851:21173;;-1:-1:-1;;;;;;10673:45:43;;1851:21173;10673:45;;1851:21173;;;10673:45;1851:21173;10673:45;1851:21173;10673:19;-1:-1:-1;;;;;1851:21173:43;10673:45;;;;;;10749:15;10673:45;;;;;1851:21173;10749:15;;1851:21173;;;;;;;;;;;;;;;10974:17;11132:22;10974:50;:17;;;1851:21173;10994:30;;;1851:21173;10974:50;;:::i;:::-;1851:21173;11099:18;;1851:21173;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;11132:22;;1851:21173;;11128:116;;1851:21173;11282:25;:42;:25;;;:::i;:::-;1851:21173;;;11282:42;:::i;:::-;1851:21173;;8192:26:41;11334:30:43;;;;:::i;:::-;8192:26:41;:::i;:::-;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;11403:32;1851:21173;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;11403:32;11451:34;;;;1851:21173;;11128:116;1851:21173;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;-1:-1:-1;11128:116:43;;1851:21173;-1:-1:-1;;;1851:21173:43;;;;;;10673:45;1851:21173;;10673:45;;;;;;;;;;;;;;:::i;:::-;;;;1851:21173;;;;;;;;;;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;2971:9:25;2967:62;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;3627:22:25;1851:21173:43;;;966:10:24;1851:21173:43;;3627:22:25;1851:21173:43;;2967:62:25;-1:-1:-1;;;3003:15:25;;1851:21173:43;3003:15:25;;1851:21173:43;;;;;;;;;;;;;5144:48;;;;1851:21173;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;966:10:24;-1:-1:-1;;;;;1851:21173:43;;6489:34:21;6485:102;;6597:37;1851:21173:43;;;6597:37:21;:::i;6485:102::-;-1:-1:-1;;;6546:30:21;;1851:21173:43;6546:30:21;;1851:21173:43;;;;;;;;;;;;;;;;1936:9:45;1851:21173:43;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;5398:25:21;1851:21173:43;;;;:::i;:::-;5368:18:21;3283:4;5368:18;;;:::i;3283:4::-;5398:25;:::i;1851:21173:43:-;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;8749:16:43;;;:::i;:::-;1851:21173;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;8906:78;1851:21173;;;;;;8906:78;:::i;:::-;9133:30;;;1851:21173;9166:28;;;;;9133:61;1851:21173;9166:28;;;:::i;:::-;1851:21173;9133:61;;:::i;:::-;9209:21;9133:97;9209:21;;;1851:21173;9133:97;;;:::i;:::-;9354:22;;;;1851:21173;;;9350:194;;1851:21173;-1:-1:-1;1851:21173:43;;-1:-1:-1;;;9645:34:43;;1851:21173;;9645:34;;1851:21173;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;9209:21;1851:21173;;;9133:30;1851:21173;;;;;;;;;;;;;:::i;:::-;;;9166:28;1851:21173;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9645:19;-1:-1:-1;;;;;1851:21173:43;;;;9645:34;1851:21173;9645:34;;1851:21173;9645:34;;;;;;;;;;;1851:21173;;;;10044:12;10073:68;1851:21173;;;;;;;;;;;10130:10;1851:21173;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;9785:30;;;;1851:21173;9847:36;9873:10;;;:::i;:::-;8871:12;9847:23;;1851:21173;;-1:-1:-1;;;;1851:21173:43;;;;;;-1:-1:-1;;;1851:21173:43;;;;;;;;9847:36;1851:21173;;;9938:30;;-1:-1:-1;;;;;1851:21173:43;9938:30;:::i;:::-;:53;1851:21173;;;9938:53;:::i;:::-;1851:21173;;;-1:-1:-1;;;;;1851:21173:43;10044:12;:::i;:::-;10130:10;:::i;:::-;1851:21173;;;;;;;;;;10073:68;1851:21173;;;;;;9645:34;;;;;;;1851:21173;9645:34;;1851:21173;9645:34;;;;;;1851:21173;9645:34;;;:::i;:::-;;;1851:21173;;;;;;9645:34;;1851:21173;;;;;;9645:34;;1851:21173;-1:-1:-1;1851:21173:43;;9645:34;;;-1:-1:-1;9645:34:43;;;1851:21173;;;;;;;;;;;;;;;9350:194;9440:30;;;1851:21173;;9406:64;;:30;;-1:-1:-1;;;;;1851:21173:43;9406:30;:::i;:64::-;1851:21173;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;-1:-1:-1;9350:194:43;;1851:21173;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;3283:4:21;;:::i;:::-;1944:72:25;;:::i;:::-;6323:9:43;;;;;;;:::i;:::-;6389;;;:::i;:::-;6344:4;;-1:-1:-1;;;;;1851:21173:43;;;6323:26;1851:21173;;-1:-1:-1;6433:19:43;;;;-1:-1:-1;;;;;6433:19:43;;;:::i;:::-;1851:21173;6433:33;1851:21173;;6545:15;;;;-1:-1:-1;;;;;6545:15:43;;;:::i;:::-;1851:21173;6545:29;1851:21173;;6724:19;-1:-1:-1;;;;;1851:21173:43;;6777:9;;;:::i;:::-;6800:15;;;:::i;:::-;6829:19;-1:-1:-1;;;;;6829:19:43;;;:::i;:::-;6862:12;;;:::i;:::-;1851:21173;;-1:-1:-1;;;6724:183:43;;-1:-1:-1;;;;;1851:21173:43;;;;6724:183;;1851:21173;;;;;;;;;;6323:9;1851:21173;;;;;;6545:15;1851:21173;;;6888:9;;;1851:21173;6433:19;1851:21173;;;;;;;;;6724:183;1851:21173;6724:183;;;;;;;;1851:21173;6724:183;;;1851:21173;-1:-1:-1;;;;;;;1851:21173:43;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;7129:30;7139:19;;;:::i;:::-;7129:30;:::i;:::-;1851:21173;;7125:190;;1851:21173;7447:29;;;1851:21173;7479:27;;;;;;;;:::i;:::-;1851:21173;;7447:59;;;;:::i;:::-;7509:20;6724:183;7509:20;;1851:21173;7447:82;;;;;:::i;:::-;1851:21173;;;;;;;;;;;7639:32;;1851:21173;7639:32;;1851:21173;;;;;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;6323:9;1851:21173;;;-1:-1:-1;;;;;1851:21173:43;;;;:::i;:::-;;6545:15;1851:21173;;;-1:-1:-1;;;;;1851:21173:43;;;:::i;:::-;;6433:19;1851:21173;;;-1:-1:-1;;;;;1851:21173:43;;;:::i;:::-;;6724:183;1851:21173;;;7447:29;1851:21173;;;;;;;;;;;;;:::i;:::-;;;7479:27;1851:21173;;;;;;:::i;:::-;;;6888:9;1851:21173;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7639:32;;;;1851:21173;7639:32;;;;;;;;;;;1851:21173;;;;;;;;;;;;8411:64;1851:21173;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;7953:15;7888:12;7845:19;;;:::i;:::-;7888:12;;:::i;:::-;7953:15;;:::i;:::-;1851:21173;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7808:373:43;;;1851:21173;;;;;7808:373;;1851:21173;;;;6545:15;7808:373;;1851:21173;;;;;;;;;;6433:19;7808:373;;1851:21173;;;;;7808:373;;1851:21173;;;7479:27;7447:29;7808:373;;1851:21173;;;;;7808:373;;1851:21173;;;7808:373;1851:21173;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7898:23:41;8213:19:43;8191:42;8213:19;;;:::i;8191:42::-;7898:23:41;:::i;:::-;;8269:37:43;8286:19;;;:::i;8269:37::-;:53;1851:21173;;;8269:53;:::i;:::-;1851:21173;;8375:19;;;;:::i;:::-;;:::i;:::-;-1:-1:-1;;;;;1851:21173:43;8441:19;;;:::i;:::-;1851:21173;;;;;;;8411:64;1851:21173;;;;;;7639:32;;;;;;1851:21173;7639:32;;1851:21173;7639:32;;;;;;1851:21173;7639:32;;;:::i;:::-;;;1851:21173;;;;;;;7639:32;;;1851:21173;7639:32;;;;;-1:-1:-1;7639:32:43;;7125:190;7175:15;-1:-1:-1;;;;;1851:21173:43;7232:19;;;:::i;:::-;7175:77;;;;;;1851:21173;;-1:-1:-1;;;7175:77:43;;-1:-1:-1;;;;;1851:21173:43;;;;7175:77;;1851:21173;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;-1:-1:-1;;7175:77:43;;;;;;;;7125:190;7276:19;7266:30;7276:19;;;:::i;7266:30::-;1851:21173;;-1:-1:-1;;1851:21173:43;;;7125:190;;7175:77;;;;;1851:21173;7175:77;;:::i;:::-;1851:21173;7175:77;;;;;1851:21173;;;;;;;;;;;;;;;;;;;;;6724:183;;;;1851:21173;6724:183;;1851:21173;6724:183;;;;;;1851:21173;6724:183;;;:::i;:::-;;;1851:21173;;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;;6724:183;;;;;;;-1:-1:-1;6724:183:43;;1851:21173;;;-1:-1:-1;;;1851:21173:43;;;;;;;;;;;;-1:-1:-1;;;6323:9:43;1851:21173;;;6545:15;;1851:21173;;;;-1:-1:-1;;;1851:21173:43;;;;;;;;;;;;-1:-1:-1;;;6323:9:43;1851:21173;;;;;;;-1:-1:-1;;;1851:21173:43;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;6344:4;1851:21173;;6323:9;;1851:21173;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;-1:-1:-1;;;;;;1851:21173:43;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;13157:78;;1851:21173;;;;;;13157:78;:::i;:::-;1851:21173;;-1:-1:-1;;;;;;13363:45:43;;1851:21173;13363:45;;1851:21173;;;13363:19;-1:-1:-1;;;;;1851:21173:43;13363:45;1851:21173;13363:45;1851:21173;;13363:45;;;;;;;1851:21173;13363:45;;;1851:21173;13485:23;13522:15;1851:21173;13522:15;;1851:21173;;;;;;;13522:65;;1851:21173;-1:-1:-1;;;;;1851:21173:43;;;;13752:15;:32;;13748:106;;13518:521;14056:20;1851:21173;;;;;;;;;14231:17;14389:22;14231:50;:17;;;1851:21173;14251:30;;;1851:21173;14231:50;;:::i;:::-;1851:21173;14356:18;;1851:21173;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;14389:22;;1851:21173;;14385:116;;13518:521;14539:25;:42;:25;;;:::i;:42::-;1851:21173;;8192:26:41;14591:30:43;;;;:::i;8192:26:41:-;;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;14660:32;1851:21173;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;14660:32;14708:38;1851:21173;14708:38;;1851:21173;14385:116;1851:21173;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;14385:116;;;1851:21173;;;;;;;;;13363:45;1851:21173;;;;13748:106;13822:17;;;;1851:21173;13748:106;;13518:521;13363:45;1851:21173;;;;;;;;;;;;;13980:48;;;1851:21173;13980:48;;1851:21173;13980:48;;;;;;;1851:21173;13980:48;;;13518:521;13962:66;13518:521;;13980:48;;;1851:21173;13980:48;;1851:21173;13980:48;;;;;;1851:21173;13980:48;;;:::i;:::-;;;1851:21173;;;;;13980:48;;;;;;-1:-1:-1;13980:48:43;;1851:21173;;;;;;;;;13363:45;1851:21173;;13363:45;;;;;;;;;;;;;;;:::i;:::-;;;;;1851:21173;;;;;;-1:-1:-1;;1851:21173:43;;;;;;2163:48;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;15395:30;;;:::i;:::-;1851:21173;;15488:13;1851:21173;15503:9;;;;;;15667:7;;;:::i;:::-;1851:21173;15514:3;5853:18:41;15619:11:43;5853:18:41;1851:21173:43;5853:18:41;;;:::i;:::-;1851:21173:43;;;;;;;;;15395:21;1851:21173;;;15619:11;:::i;:::-;1851:21173;15488:13;;1851:21173;;;;;;-1:-1:-1;;1851:21173:43;;;;-1:-1:-1;;;;;;1851:21173:43;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;18805:50;1851:21173;;;18805:50;1851:21173;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4742:48:43;;;:114;;;;1851:21173;4742:188;;;;1851:21173;4742:240;;;;1851:21173;;;;;;;4742:240;-1:-1:-1;;;6687:49:45;;;-1:-1:-1;6687:89:45;;;;4742:240:43;;;;;6687:89:45;-1:-1:-1;;;1851:57:22;;;-1:-1:-1;1851:97:22;;;;6687:89:45;;;;;1851:97:22;-1:-1:-1;;;3599:47:21;;;-1:-1:-1;3599:87:21;;;;1851:97:22;;;;;3599:87:21;-1:-1:-1;;;1101:40:26;;-1:-1:-1;3599:87:21;;;4742:188:43;-1:-1:-1;;;4872:58:43;;;-1:-1:-1;4742:188:43;;:114;-1:-1:-1;;;4806:50:43;;;-1:-1:-1;4742:114:43;;1851:21173;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;;:::o;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;15395:21;1851:21173;;;;;;:::o;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;:::o;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;7129:9;1851:21173;;;;;;:::o;:::-;6888:9;1851:21173;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;:::o;:::-;;;;-1:-1:-1;1851:21173:43;;;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;:::o;:::-;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;:::o;16846:1079::-;16975:30;;;:::i;:::-;:37;-1:-1:-1;1851:21173:43;;;;;17165:18;;;:::i;:::-;1851:21173;;17161:386;;16846:1079;1851:21173;;-1:-1:-1;;;17625:80:43;;1851:21173;-1:-1:-1;;;;;17625:15:43;1851:21173;;;17675:19;1851:21173;17625:80;1851:21173;;17625:80;17660:4;1851:21173;17660:4;17165:9;17625:80;;;:::i;:::-;;;;;;;;;;;;;;;16846:1079;17719:13;;17715:204;;16846:1079;;;;;;:::o;17715:204::-;17748:70;;;;;1851:21173;;-1:-1:-1;;;17748:70:43;;-1:-1:-1;;;;;1851:21173:43;;;17165:9;17748:70;;1851:21173;;;;;;;;;;;;;;;;;;;;;;;;;17748:70;;;;;;;;17715:204;17832:18;;17625:80;17832:18;;17876:32;17832:18;;:::i;:::-;1851:21173;;-1:-1:-1;;1851:21173:43;17853:4;1851:21173;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;17876:32;17715:204;;;;;;;17748:70;;;;;;:::i;:::-;1851:21173;;17748:70;;;17625:80;;;;;;;;;;;;;;1851:21173;17625:80;;;:::i;:::-;;;1851:21173;;;;;17625:80;;;;;;;-1:-1:-1;17625:80:43;;;1851:21173;;;;;;;;;17161:386;17260:15;-1:-1:-1;;;;;1851:21173:43;17260:63;;;;;1851:21173;;-1:-1:-1;;;17260:63:43;;-1:-1:-1;;;;;17293:19:43;1851:21173;;17165:9;17260:63;;1851:21173;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;-1:-1:-1;;17260:63:43;;;;;;17161:386;-1:-1:-1;17256:281:43;;17516:7;;:::o;17256:281::-;17342:18;;;:::i;:::-;1851:21173;;-1:-1:-1;;1851:21173:43;;;-1:-1:-1;;;;;1851:21173:43;;17391:24;;;;17161:386;;17260:63;;;;;-1:-1:-1;17260:63:43;;:::i;:::-;-1:-1:-1;17260:63:43;;;;1851:21173;-1:-1:-1;;;;1851:21173:43;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1851:21173:43;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1851:21173:43;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1851:21173:43;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1851:21173:43;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1851:21173:43;;;;;;;;-1:-1:-1;;1851:21173:43;;;;:::o;4807:191:21:-;-1:-1:-1;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;4967:24:21;1851:21173:43;-1:-1:-1;1851:21173:43;4967:24:21;1851:21173:43;4807:191:21;:::o;1851:21173:43:-;;-1:-1:-1;;;;;;1851:21173:43;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;:::o;18222:427::-;18447:80;;18387:25;;;:::i;:::-;1851:21173;;;-1:-1:-1;;;18447:80:43;;1851:21173;;;;;;;;;18497:19;-1:-1:-1;;;;;1851:21173:43;18482:4;18447:80;;;;:::i;:::-;;1851:21173;18447:15;-1:-1:-1;;;;;1851:21173:43;18447:80;;;;;;;1851:21173;18447:80;;;18222:427;18541:25;;;;18537:88;;18634:8;;1851:21173;18222:427;:::o;18537:88::-;18589:25;;;:::i;:::-;18582:32;:::o;18447:80::-;;;;;;;;;;;;;1851:21173;18447:80;;;:::i;:::-;;;1851:21173;;;;;18447:80;;;;;;-1:-1:-1;18447:80:43;;20027:1449;-1:-1:-1;;;;;;1851:21173:43;-1:-1:-1;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;;;;;;20206:12;20202:25;;1851:21173;;-1:-1:-1;;;;;;20290:45:43;;;;;1851:21173;;;20290:19;-1:-1:-1;;;;;1851:21173:43;;;20290:45;1851:21173;20290:45;1851:21173;;20290:45;;;;;;;-1:-1:-1;20290:45:43;;;20027:1449;20416:15;;;;1851:21173;20290:45;1851:21173;;;;;20416:65;20412:102;;20680:22;;;1851:21173;;;20680:36;;:88;;;;20027:1449;20676:384;;;20027:1449;21092:17;;;;;1851:21173;20290:45;1851:21173;;;;;;;;;;;;;21141:48;;;20290:45;21141:48;;1851:21173;21141:48;;;;;;;-1:-1:-1;21141:48:43;;;20027:1449;21204:26;;;;21200:270;;20027:1449;;;;;:::o;21200:270::-;21401:58;1851:21173;;;;;;;;;;;;;;-1:-1:-1;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;21324:58;1851:21173;21324:44;1851:21173;;-1:-1:-1;1851:21173:43;;21324:44;:::i;:::-;:58;:::i;:::-;21291:30;-1:-1:-1;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;-1:-1:-1;1851:21173:43;;;;;;;;;;;21401:58;21200:270;;;;;;;21141:48;;;1851:21173;21141:48;;1851:21173;21141:48;;;;;;1851:21173;21141:48;;;:::i;:::-;;;1851:21173;;;;;21141:48;;;;;;-1:-1:-1;21141:48:43;;20676:384;-1:-1:-1;20818:30:43;;;;;1851:21173;;;20784:30;1851:21173;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;20784:64;1851:21173;;;;;;20784:64;:::i;:::-;1851:21173;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;-1:-1:-1;;;;;;1851:21173:43;;;;;20973:23;;1851:21173;;-1:-1:-1;;;;1851:21173:43;;;;-1:-1:-1;;20676:384:43;;20680:88;20720:23;;1851:21173;20747:21;20720:23;20167:12;20720:23;;1851:21173;;;;20747:21;;1851:21173;;-1:-1:-1;20720:48:43;20680:88;;;20290:45;;;;;;;;;;;;;;:::i;:::-;;;;20202:25;20220:7;;;:::o;21834:824::-;1851:21173;;-1:-1:-1;;;21958:80:43;;-1:-1:-1;;;;;22008:19:43;1851:21173;;;21958:15;1851:21173;;;;;21958:80;1851:21173;;21958:80;1851:21173;;21993:4;21958:80;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;21958:80:43;;;21834:824;-1:-1:-1;;;;;;1851:21173:43;;-1:-1:-1;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;21958:80:43;1851:21173;;;;;;;;;22107:25;;;22103:549;;21834:824;;;;;;;:::o;22103:549::-;22166:25;;;;:::i;:::-;1851:21173;;-1:-1:-1;;;22225:36:43;;21993:4;21958:80;22225:36;;1851:21173;22225:11;-1:-1:-1;;;;;1851:21173:43;;;;21958:80;1851:21173;22225:36;1851:21173;;22225:36;;;;;;;-1:-1:-1;22225:36:43;;;22103:549;-1:-1:-1;22295:19:43;;;;;;:41;;;22354:13;22350:292;;22295:41;22103:549;;;;22350:292;21958:80;-1:-1:-1;1851:21173:43;22387:56;1851:21173;;;;;;;;;22387:56;;;21958:80;22387:56;;1851:21173;;22225:36;1851:21173;;;22387:56;;;;;;;;22350:292;22461:73;;;;;;1851:21173;;-1:-1:-1;;;22461:73:43;;-1:-1:-1;;;;;1851:21173:43;;;21958:80;22461:73;;1851:21173;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;-1:-1:-1;;22461:73:43;;;;;;;;1851:21173;22461:73;22589:26;22461:73;22557:70;22461:73;;;22350:292;22589:26;;:::i;:::-;1851:21173;;;;;21958:80;1851:21173;;;;;;;22557:70;22350:292;;;;;;;;;;22461:73;-1:-1:-1;22461:73:43;;;:::i;:::-;-1:-1:-1;22461:73:43;;22387:56;21958:80;22387:56;;21958:80;22387:56;;;;;;21958:80;22387:56;;;:::i;:::-;;;1851:21173;;;;;;;;;;22387:56;1851:21173;-1:-1:-1;1851:21173:43;;22387:56;;;-1:-1:-1;22387:56:43;;22295:41;;;;;;22225:36;;;21958:80;22225:36;;21958:80;22225:36;;;;;;1851:21173;22225:36;;;:::i;:::-;;;1851:21173;;;;;22225:36;;;;;;-1:-1:-1;22225:36:43;;21958:80;;;;;;;;;;;;;;1851:21173;21958:80;;;:::i;:::-;;;1851:21173;;;;;21958:80;;;;;;;-1:-1:-1;21958:80:43;;4196:103:21;966:10:24;-1:-1:-1;1851:21173:43;;;;;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;-1:-1:-1;4562:47:21;4196:103;966:10:24;-1:-1:-1;1851:21173:43;;;;;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;-1:-1:-1;4562:47:21;4196:103;-1:-1:-1;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;966:10:24;1851:21173:43;;;;;;;;;;4516:23:21;4512:108;;4196:103;:::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;1851:21173:43;;;;-1:-1:-1;4562:47:21;2709:128:25;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;2770:61:25;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:25;;-1:-1:-1;2805:15:25;4035:348:22;4241:31;;;;:::i;:::-;4282:71;;;;4362:14;;4035:348;:::o;4282:71::-;-1:-1:-1;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;11511:50:41;;-1:-1:-1;;;;;1851:21173:43;;11511:50:41;:::i;:::-;;4035:348:22;:::o;4486:353::-;4693:32;;;;:::i;:::-;4735:74;;;;4818:14;;4486:353;:::o;4735:74::-;-1:-1:-1;1851:21173:43;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;11832:53:41;;-1:-1:-1;;;;;1851:21173:43;;11832:53:41;:::i;1851:21173:43:-;;;;;;;;-1:-1:-1;1851:21173:43;;-1:-1:-1;1851:21173:43;;;-1:-1:-1;1851:21173:43;:::o;3071:1368:41:-;;3266:14;;;1851:21173:43;;;;;;;;;;;3302:13:41;;;3298:1135;3302:13;;;-1:-1:-1;;1851:21173:43;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;;;3777:23:41;;;3773:378;;3298:1135;1851:21173:43;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3266:14:41;4368:11;:::o;1851:21173:43:-;;;;;;;;;;;;3773:378:41;1851:21173:43;3840:22:41;3961:23;3840:22;;;:::i;:::-;1851:21173:43;;;;;;3961:23:41;;;;;:::i;:::-;1851:21173:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3773:378:41;;;;;3298:1135;4410:12;;;;1851:21173:43;4410:12:41;:::o;2497:406::-;5197:14;;;1851:21173:43;;;;;;;;;;;5197:26:41;2576:321;1851:21173:43;;;;;-1:-1:-1;;;1851:21173:43;;;;;;;;5197:14:41;1851:21173:43;;;;;;;:::i;:::-;;;;;;;;;;;;;5197:14:41;2832:11;:::o;2576:321::-;2874:12;;;1851:21173:43;2874:12:41;:::o;7318:387:21:-;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;966:10:24;;1851:21173:43;-1:-1:-1;;;;;;;;;;;2399:26:45;7580:40:21;;1851:21173:43;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;1851:21173:43;7676:12:21;:::o;7318:387::-;1851:21173:43;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;;;966:10:24;;1851:21173:43;;7580:40:21;;1851:21173:43;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;;1851:21173:43;7676:12:21;:::o;7942:388::-;1851:21173:43;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;;;;;-1:-1:-1;;;;;1851:21173:43;;;;;;;;;;;;;;;-1:-1:-1;;1851:21173:43;;;966:10:24;;1851:21173:43;;8205:40:21;;1851:21173:43;8205:40:21;1851:21173:43;8259:11:21;:::o;7082:141:23:-;1851:21173:43;-1:-1:-1;;;;;;;;;;;1851:21173:43;;;;7148:18:23;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:23;;-1:-1:-1;7189:17:23"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","GOVERNOR_ROLE()":"ccc57490","MILLION()":"32bc934c","OPERATOR_ROLE()":"f5b541a6","PAUSE_ROLE()":"389ed267","PAYMENTS_ESCROW()":"18d620f8","RECURRING_COLLECTOR()":"a49c2e57","beforeIssuanceAllocationChange()":"3df8d682","cancelAgreement(bytes16)":"f83118af","getAgreementInfo(bytes16)":"e9b78bc8","getAgreementMaxNextClaim(bytes16)":"085b3e65","getDeficit(address)":"a74558e1","getIndexerAgreementCount(address)":"f2da52c5","getIndexerAgreements(address)":"a2a58379","getRequiredEscrow(address)":"e9a91276","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","isAuthorizedAgreement(bytes32)":"8d202ecf","maintain(address)":"037c5d7f","offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))":"1f19ce54","offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))":"27cc6df1","pause()":"8456cb59","paused()":"5c975abb","reconcile(address)":"09a18635","reconcileAgreement(bytes16)":"d253c4c4","reconcileBatch(bytes16[])":"78ecca5f","removeAgreement(bytes16)":"1d1e41aa","renounceRole(bytes32,address)":"36568abe","revokeOffer(bytes16)":"59249b09","revokeRole(bytes32,address)":"d547741f","setIssuanceAllocator(address)":"931c0ac1","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"paymentsEscrow\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recurringCollector\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GovernorCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTokenCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementAlreadyAccepted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementAlreadyOffered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementNotAccepted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"}],\"name\":\"IndexingAgreementManagerAgreementNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"IndexingAgreementManagerAgreementNotOffered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"}],\"name\":\"IndexingAgreementManagerAgreementStillClaimable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerInvalidDataService\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"field\",\"type\":\"string\"}],\"name\":\"IndexingAgreementManagerInvalidRCAField\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerPayerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"IndexingAgreementManagerStillHasAgreements\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"AgreementCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"}],\"name\":\"AgreementOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxNextClaim\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxNextClaim\",\"type\":\"uint256\"}],\"name\":\"AgreementReconciled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"AgreementRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pendingMaxNextClaim\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"updateNonce\",\"type\":\"uint32\"}],\"name\":\"AgreementUpdateOffered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requiredEscrow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposited\",\"type\":\"uint256\"}],\"name\":\"EscrowFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"EscrowThawed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"EscrowWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"OfferRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MILLION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYMENTS_ESCROW\",\"outputs\":[{\"internalType\":\"contract IPaymentsEscrow\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECURRING_COLLECTOR\",\"outputs\":[{\"internalType\":\"contract IRecurringCollector\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"cancelAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getAgreementInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pendingUpdateNonce\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"maxNextClaim\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pendingUpdateMaxNextClaim\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"pendingUpdateHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IIndexingAgreementManager.AgreementInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"getAgreementMaxNextClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getDeficit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerAgreementCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerAgreements\",\"outputs\":[{\"internalType\":\"bytes16[]\",\"name\":\"\",\"type\":\"bytes16[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getRequiredEscrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"governor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementHash\",\"type\":\"bytes32\"}],\"name\":\"isAuthorizedAgreement\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"maintain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreement\",\"name\":\"rca\",\"type\":\"tuple\"}],\"name\":\"offerAgreement\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endsAt\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxInitialTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxOngoingTokensPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"minSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSecondsPerCollection\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct IRecurringCollector.RecurringCollectionAgreementUpdate\",\"name\":\"rcau\",\"type\":\"tuple\"}],\"name\":\"offerAgreementUpdate\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"reconcile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"reconcileAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16[]\",\"name\":\"agreementIds\",\"type\":\"bytes16[]\"}],\"name\":\"reconcileBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"removeAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"agreementId\",\"type\":\"bytes16\"}],\"name\":\"revokeOffer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"IndexingAgreementManagerAgreementAlreadyAccepted(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementAlreadyOffered(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementNotAccepted(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementNotAuthorized(bytes32)\":[{\"params\":{\"agreementHash\":\"The hash that was not authorized\"}}],\"IndexingAgreementManagerAgreementNotOffered(bytes16)\":[{\"params\":{\"agreementId\":\"The agreement ID\"}}],\"IndexingAgreementManagerAgreementStillClaimable(bytes16,uint256)\":[{\"params\":{\"agreementId\":\"The agreement ID\",\"maxNextClaim\":\"The remaining max next claim\"}}],\"IndexingAgreementManagerInvalidDataService(address)\":[{\"params\":{\"dataService\":\"The address that was expected to be a contract\"}}],\"IndexingAgreementManagerInvalidRCAField(string)\":[{\"params\":{\"field\":\"The name of the invalid field\"}}],\"IndexingAgreementManagerPayerMismatch(address,address)\":[{\"params\":{\"expected\":\"The expected payer (this contract)\",\"payer\":\"The payer address in the RCA\"}}],\"IndexingAgreementManagerStillHasAgreements(address)\":[{\"params\":{\"indexer\":\"The indexer address\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"AgreementCanceled(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"indexer\":\"The indexer for this agreement\"}},\"AgreementOffered(bytes16,address,uint256)\":{\"params\":{\"agreementId\":\"The deterministic agreement ID\",\"indexer\":\"The indexer (service provider) for this agreement\",\"maxNextClaim\":\"The calculated maximum next claim amount\"}},\"AgreementReconciled(bytes16,uint256,uint256)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"newMaxNextClaim\":\"The updated max next claim\",\"oldMaxNextClaim\":\"The previous max next claim\"}},\"AgreementRemoved(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID being removed\",\"indexer\":\"The indexer whose required escrow was reduced\"}},\"AgreementUpdateOffered(bytes16,uint256,uint32)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"pendingMaxNextClaim\":\"The max next claim for the pending update\",\"updateNonce\":\"The RCAU nonce for the pending update\"}},\"EscrowFunded(address,uint256,uint256,uint256)\":{\"params\":{\"currentBalance\":\"The escrow balance after funding\",\"deposited\":\"The amount deposited in this transaction\",\"indexer\":\"The indexer whose escrow was funded\",\"requiredEscrow\":\"The total required escrow for the indexer\"}},\"EscrowThawed(address,uint256)\":{\"params\":{\"indexer\":\"The indexer whose escrow is being thawed\",\"tokens\":\"The amount of tokens being thawed\"}},\"EscrowWithdrawn(address)\":{\"params\":{\"indexer\":\"The indexer whose escrow was withdrawn\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}},\"OfferRevoked(bytes16,address)\":{\"params\":{\"agreementId\":\"The agreement ID\",\"indexer\":\"The indexer whose required escrow was reduced\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"cancelAgreement(bytes16)\":{\"details\":\"Requires OPERATOR_ROLE. Reads agreement state from RecurringCollector: - NotAccepted: reverts (use {revokeOffer} instead) - Accepted: cancels via the data service, then reconciles and funds escrow - Already canceled: idempotent \\u2014 reconciles and funds escrow without re-canceling After cancellation, call {removeAgreement} once the collection window closes.\",\"params\":{\"agreementId\":\"The agreement ID to cancel\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"graphToken\":\"Address of the Graph Token contract\",\"paymentsEscrow\":\"Address of the PaymentsEscrow contract\",\"recurringCollector\":\"Address of the RecurringCollector contract\"}},\"getAgreementInfo(bytes16)\":{\"params\":{\"agreementId\":\"The agreement ID\"},\"returns\":{\"_0\":\"The agreement info struct (all fields zero if not tracked)\"}},\"getAgreementMaxNextClaim(bytes16)\":{\"params\":{\"agreementId\":\"The agreement ID\"},\"returns\":{\"_0\":\"The current max next claim stored for this agreement\"}},\"getDeficit(address)\":{\"details\":\"Returns 0 if escrow is fully funded or over-funded.\",\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The deficit amount (required - current balance), or 0 if no deficit\"}},\"getIndexerAgreementCount(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The count of tracked agreements\"}},\"getIndexerAgreements(address)\":{\"details\":\"Returns the full set of tracked agreement IDs. May be expensive for indexers with many agreements \\u2014 prefer {getIndexerAgreementCount} for on-chain use.\",\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The array of agreement IDs\"}},\"getRequiredEscrow(address)\":{\"params\":{\"indexer\":\"The indexer address\"},\"returns\":{\"_0\":\"The sum of max next claims for all managed agreements for this indexer\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"params\":{\"governor\":\"Address that will have the GOVERNOR_ROLE\"}},\"isAuthorizedAgreement(bytes32)\":{\"details\":\"Called by {RecurringCollector.acceptUnsigned} with an RCA hash or by {RecurringCollector.updateUnsigned} with an RCAU hash to verify authorization.\",\"params\":{\"agreementHash\":\"The EIP712 hash of the RCA or RCAU struct\"},\"returns\":{\"_0\":\"magic `IContractApprover.isAuthorizedAgreement.selector` if authorized\"}},\"maintain(address)\":{\"details\":\"Permissionless. Two-phase operation: - If a previous thaw has completed: withdraws tokens back to this contract - If escrow balance remains: initiates a thaw for the available balance Only operates when the indexer has zero tracked agreements. Guards against reducing an in-progress thaw.\",\"params\":{\"indexer\":\"The indexer to maintain\"}},\"offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"details\":\"Calculates max next claim from RCA parameters, stores the authorized hash for the {IContractApprover} callback, and funds the escrow.\",\"params\":{\"rca\":\"The Recurring Collection Agreement parameters\"},\"returns\":{\"agreementId\":\"The deterministic agreement ID\"}},\"offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"details\":\"Stores the authorized RCAU hash for the {IContractApprover} callback and adds the pending update's max next claim to the required escrow. Treats the pending update as a separate escrow entry alongside the current agreement. If a previous pending update exists, it is replaced.\",\"params\":{\"rcau\":\"The Recurring Collection Agreement Update parameters\"},\"returns\":{\"agreementId\":\"The agreement ID from the RCAU\"}},\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"reconcile(address)\":{\"details\":\"Permissionless. Iterates all tracked agreements for the indexer \\u2014 O(n) gas, may hit gas limits with many agreements. Prefer reconcileAgreement for individual updates, or reconcileBatch for controlled batching.\",\"params\":{\"indexer\":\"The indexer to reconcile\"}},\"reconcileAgreement(bytes16)\":{\"details\":\"Permissionless. This is the primary reconciliation function \\u2014 gas-predictable, per-agreement. Skips if agreement is not yet accepted in RecurringCollector. Should be called after collections, cancellations, or agreement updates.\",\"params\":{\"agreementId\":\"The agreement ID to reconcile\"}},\"reconcileBatch(bytes16[])\":{\"details\":\"Permissionless. Allows callers to control gas usage by choosing which agreements to reconcile in a single transaction.\",\"params\":{\"agreementIds\":\"The agreement IDs to reconcile\"}},\"removeAgreement(bytes16)\":{\"details\":\"Permissionless. Only succeeds when the agreement's max next claim is 0 (no more collections possible). This covers: CanceledByServiceProvider (immediate), CanceledByPayer (after window expires), active agreements past endsAt, and NotAccepted offers past their deadline.\",\"params\":{\"agreementId\":\"The agreement ID to remove\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeOffer(bytes16)\":{\"details\":\"Requires OPERATOR_ROLE. Clears the agreement tracking and authorized hashes, freeing the reserved escrow. Any pending update is also cleared.\",\"params\":{\"agreementId\":\"The agreement ID to revoke\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setIssuanceAllocator(address)\":{\"details\":\"No-op: IndexingAgreementManager receives tokens via transfer, does not need the allocator address.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"stateVariables\":{\"PAYMENTS_ESCROW\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RECURRING_COLLECTOR\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"IndexingAgreementManager\",\"version\":1},\"userdoc\":{\"errors\":{\"GovernorCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the governor to the zero address\"}],\"GraphTokenCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the Graph Token to the zero address\"}],\"IndexingAgreementManagerAgreementAlreadyAccepted(bytes16)\":[{\"notice\":\"Thrown when trying to revoke an agreement that is already accepted\"}],\"IndexingAgreementManagerAgreementAlreadyOffered(bytes16)\":[{\"notice\":\"Thrown when trying to offer an agreement that is already offered\"}],\"IndexingAgreementManagerAgreementNotAccepted(bytes16)\":[{\"notice\":\"Thrown when trying to cancel an agreement that has not been accepted yet\"}],\"IndexingAgreementManagerAgreementNotAuthorized(bytes32)\":[{\"notice\":\"Thrown when an agreement hash is not authorized\"}],\"IndexingAgreementManagerAgreementNotOffered(bytes16)\":[{\"notice\":\"Thrown when trying to operate on an agreement that is not offered\"}],\"IndexingAgreementManagerAgreementStillClaimable(bytes16,uint256)\":[{\"notice\":\"Thrown when trying to remove an agreement that is still claimable\"}],\"IndexingAgreementManagerInvalidDataService(address)\":[{\"notice\":\"Thrown when the data service address has no deployed code\"}],\"IndexingAgreementManagerInvalidRCAField(string)\":[{\"notice\":\"Thrown when an RCA has a zero-address service provider or data service\"}],\"IndexingAgreementManagerPayerMismatch(address,address)\":[{\"notice\":\"Thrown when the RCA payer is not this contract\"}],\"IndexingAgreementManagerStillHasAgreements(address)\":[{\"notice\":\"Thrown when maintain is called but the indexer still has agreements\"}]},\"events\":{\"AgreementCanceled(bytes16,address)\":{\"notice\":\"Emitted when an agreement is canceled via the data service\"},\"AgreementOffered(bytes16,address,uint256)\":{\"notice\":\"Emitted when an agreement is offered for escrow management\"},\"AgreementReconciled(bytes16,uint256,uint256)\":{\"notice\":\"Emitted when an agreement's max next claim is recalculated\"},\"AgreementRemoved(bytes16,address)\":{\"notice\":\"Emitted when an agreement is removed from escrow management\"},\"AgreementUpdateOffered(bytes16,uint256,uint32)\":{\"notice\":\"Emitted when a pending agreement update is offered\"},\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"EscrowFunded(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when escrow is funded for an indexer\"},\"EscrowThawed(address,uint256)\":{\"notice\":\"Emitted when escrow tokens are thawed for withdrawal\"},\"EscrowWithdrawn(address)\":{\"notice\":\"Emitted when thawed escrow tokens are withdrawn\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"},\"OfferRevoked(bytes16,address)\":{\"notice\":\"Emitted when an agreement offer is revoked before acceptance\"}},\"kind\":\"user\",\"methods\":{\"GOVERNOR_ROLE()\":{\"notice\":\"Role identifier for governor accounts\"},\"MILLION()\":{\"notice\":\"One million - used as the denominator for values provided as Parts Per Million (PPM)\"},\"OPERATOR_ROLE()\":{\"notice\":\"Role identifier for operator accounts\"},\"PAUSE_ROLE()\":{\"notice\":\"Role identifier for pause accounts\"},\"PAYMENTS_ESCROW()\":{\"notice\":\"The PaymentsEscrow contract\"},\"RECURRING_COLLECTOR()\":{\"notice\":\"The RecurringCollector contract\"},\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"cancelAgreement(bytes16)\":{\"notice\":\"Cancel an accepted agreement by routing through the data service.\"},\"constructor\":{\"notice\":\"Constructor for the IndexingAgreementManager contract\"},\"getAgreementInfo(bytes16)\":{\"notice\":\"Get the full tracked state for a specific agreement\"},\"getAgreementMaxNextClaim(bytes16)\":{\"notice\":\"Get the max next claim for a specific agreement\"},\"getDeficit(address)\":{\"notice\":\"Get the current escrow deficit for an indexer\"},\"getIndexerAgreementCount(address)\":{\"notice\":\"Get the number of managed agreements for an indexer\"},\"getIndexerAgreements(address)\":{\"notice\":\"Get all managed agreement IDs for an indexer\"},\"getRequiredEscrow(address)\":{\"notice\":\"Get the total required escrow for an indexer\"},\"initialize(address)\":{\"notice\":\"Initialize the IndexingAgreementManager contract\"},\"isAuthorizedAgreement(bytes32)\":{\"notice\":\"Confirms this contract authorized the given agreement or update\"},\"maintain(address)\":{\"notice\":\"Maintain escrow for an indexer with no remaining agreements.\"},\"offerAgreement((uint64,uint64,address,address,address,uint256,uint256,uint32,uint32,uint256,bytes))\":{\"notice\":\"Offer an RCA for escrow management. Must be called before {SubgraphService.acceptUnsignedIndexingAgreement}.\"},\"offerAgreementUpdate((bytes16,uint64,uint64,uint256,uint256,uint32,uint32,uint32,bytes))\":{\"notice\":\"Offer a pending agreement update for escrow management. Must be called before {SubgraphService.updateUnsignedIndexingAgreement}.\"},\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"reconcile(address)\":{\"notice\":\"Reconcile all agreements for an indexer (convenience function).\"},\"reconcileAgreement(bytes16)\":{\"notice\":\"Reconcile a single agreement. Re-reads agreement state from RecurringCollector, recalculates max next claim, and tops up escrow.\"},\"reconcileBatch(bytes16[])\":{\"notice\":\"Reconcile a batch of agreements (operator-controlled batching).\"},\"removeAgreement(bytes16)\":{\"notice\":\"Remove a fully expired agreement from tracking.\"},\"revokeOffer(bytes16)\":{\"notice\":\"Revoke an un-accepted agreement offer. Only for agreements not yet accepted in RecurringCollector.\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"Manages escrow funding for RCAs (Recurring Collection Agreements) using issuance-allocated tokens. This contract: 1. Receives minted GRT from IssuanceAllocator (implements IIssuanceTarget) 2. Authorizes RCA acceptance via contract callback (implements IContractApprover) 3. Tracks max-next-claim per agreement, funds PaymentsEscrow to cover maximums One escrow per (this contract, RecurringCollector, indexer) covers all managed RCAs for that indexer. Other participants can independently use RCAs via the standard ECDSA-signed flow.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/allocate/IndexingAgreementManager.sol\":\"IndexingAgreementManager\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol\":{\"keccak256\":\"0x24a4b7bf75c66404683c66cb8ed2d456f80a779617eb162794db9cf17bd58f19\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://58a651ccf814c460ce3581cf24de0dcdd8f734b71b1980246608f38aca84ac09\",\"dweb:/ipfs/QmTvyZMaQWpbTYZfjrVp5ZbZMb6NTJGfadyhqNPLCaQL59\"]},\"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol\":{\"keccak256\":\"0x9416312dc83a2473adf6d05f4ab4eca44f7e69df3617205b20e4eb2c531750bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d040ed6e1a3b7492e24ef33f296fc4d111817d097bf826b5a86887eade91bf7d\",\"dweb:/ipfs/QmUE7NcxHdeSYMuVFiSDNqzExrSjyBX8mWXEnPV5RiJ3BR\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol\":{\"keccak256\":\"0x355b62b5710dd2ff0ca085989f78dd4daaac7b5c35ee11dac47674ea3592b21d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://78587e3ed01e52d1092ebfbc48b8c11519a4fba9ae264fb5aba02806404bad25\",\"dweb:/ipfs/Qme5duGpikyHR2QXFiuQNNCjiCihyZR4eb9vzQsHK5vfVk\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol\":{\"keccak256\":\"0xb3c0ae0022b8c4eef99adcdf79f313e87c4d355ed209685c76399a5fb9c767b0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5ec8b069cae7192f0ac0eef9626cc81d5da2f1272af2be87c1f6565e62621f2f\",\"dweb:/ipfs/QmXtLAdXP78Pe3vfrvscbdABDsXi4kFXhddQ7NewpU3cU3\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol\":{\"keccak256\":\"0x0488eb59477911fb0596038d1ee8286f0365727cf271e526719015b972ebd800\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dacd82db07a5a75a20d5bbac17d9826f7954354260d390206a253164b3fd51ae\",\"dweb:/ipfs/QmbYN5qTnnzRfycEGLHr5S4j3npo7Y1dyfB8UGH7URzj6D\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol\":{\"keccak256\":\"0xac87419dd33722e6e2cf782959ea445feea521388075cdfd492b8694efef2c3b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2620459f86ddf5a96f35e3069fb96de6fa26c46c697250d9965589addf8030db\",\"dweb:/ipfs/QmZ4rG6J6VSyEtDEwyju8DfsHYiFMXwFWyfvBjmwdXhwVd\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol\":{\"keccak256\":\"0xe1e96fbd174df4b238486e55a53631febddbee58b392a5db9b7c5ad6c7048cf0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5badee627fd83df7c1823cb8ba2a92172d0c14cf320d55d06e6336efca21ebf\",\"dweb:/ipfs/QmSJL8S5hfq81zajFb3E8bhw53TsuNNK97WEpVQejMoZhv\"]},\"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol\":{\"keccak256\":\"0x3b37aaac35d6566dbed03936b7111f861dfe38f3141064e48ca2336bd9aa9e41\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1dd54449dba3eddebd095213b03c5a3109da1a534271ad1807ddc159cee50081\",\"dweb:/ipfs/QmZCjoFUq4RyhdzswaZgJkSHAbTAHXXn46deVxy69HtQSr\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol\":{\"keccak256\":\"0x0179f05b285cfb0b4a1572d7abd7f430effb3897585e11270cc8a90723be4807\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8687870ef47a95c9aacd915d8a65e1afb17942e9b4f616b54d7e8f0ba3479a4b\",\"dweb:/ipfs/QmcZVyb5yYMs2oUKmMjeJfbj1AQt4wY5VWDY9G5WvsAEiR\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol\":{\"keccak256\":\"0xf1e5e4b8caa24a4984b31a0d40edee96856d8166cb8d57dd9214b587673d85e5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a71ccc9bef8d42d4414374bef95cb3d056879feab86299007e246de7bd1c67d7\",\"dweb:/ipfs/QmQ1p44Lu8Jk8YTw6edJJN6nJ3AynH23ZxTSQKyAZsLuZW\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol\":{\"keccak256\":\"0x4642a282ea1efe3a60266c9566a179ff9f4b52c9e9a9c7a0e56b3bc2fd064e7b\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c581b0d9d4503cf8090083bca35574b200aea9da1babf447df4e65eb036ca46a\",\"dweb:/ipfs/QmfF1JSFXxHnEuD77vMgTt6cRzqiHovxwQaA2QKP9ngPxB\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol\":{\"keccak256\":\"0xb410232626b374d90b0fc43f42d9446df1bf611c3a65604cceee1af71ae9559d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b59be383b1af86cdb8071d6040fee92fbfef0ce5c5be14a6cdba9efcbc63a4c\",\"dweb:/ipfs/QmPg4Jjqj88HU3oHCEobgjSuxS9nyCUZyqke4ssAKT55vP\"]},\"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol\":{\"keccak256\":\"0xd82b37b71dd7d7d039b017933e34c57a5617bdaccfcc1ff38b50b25d7ee59696\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://245da20f114a9ecbf3a42dc67705bbcbe41145cffe25aba1d83b4b3056a3c557\",\"dweb:/ipfs/QmSj3kL31LufsrvhcxV5DVJhuQAsyBknKuoTPKfutT7Vm2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"project/contracts/allocate/IndexingAgreementManager.sol\":{\"keccak256\":\"0xb099f1affde1279049a12ee28896b0eb47b67550426599f1c659b60d71a58760\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2265f2657bb6f3f2c5fd1aa7585594b417314743bf5c4ff4c33f3dea55ae6f98\",\"dweb:/ipfs/QmPnntnRgNot91U613AAjbuUPvfBVHywwSjjw3w1HiybdW\"]},\"project/contracts/common/BaseUpgradeable.sol\":{\"keccak256\":\"0x78604bc34c8f141aeae60c342c88d3665ceb74787f9becfcb4847247cff4e79e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://28bd9105960c7c3769d5c27d8ba2d78afe8d55bd4baaccc9dcc0c26468e719ae\",\"dweb:/ipfs/QmSojY3oUAxUieyr67ggKdP2jdbfBQDsexkTdWt4t7jTM6\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]}},\"version\":1}"}},"project/contracts/allocate/IssuanceAllocator.sol":{"IssuanceAllocator":{"abi":[{"inputs":[{"internalType":"address","name":"_graphToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"defaultTarget","type":"address"}],"name":"CannotSetAllocationForDefaultTarget","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"CannotSetDefaultToAllocatedTarget","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"InsufficientAllocationAvailable","type":"error"},{"inputs":[{"internalType":"uint256","name":"oldRate","type":"uint256"},{"internalType":"uint256","name":"newRate","type":"uint256"},{"internalType":"uint256","name":"unallocated","type":"uint256"}],"name":"InsufficientUnallocatedForRateDecrease","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"TargetAddressCannotBeZero","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetDoesNotSupportIIssuanceTarget","type":"error"},{"inputs":[{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"uint256","name":"minBlock","type":"uint256"},{"internalType":"uint256","name":"maxBlock","type":"uint256"}],"name":"ToBlockOutOfRange","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"DefaultTargetUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldIssuancePerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"}],"name":"IssuancePerBlockUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceSelfMintAllowance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceSelfMintAllowanceAggregate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum SelfMintingEventMode","name":"oldMode","type":"uint8"},{"indexed":false,"internalType":"enum SelfMintingEventMode","name":"newMode","type":"uint8"}],"name":"SelfMintingEventModeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"offsetBefore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"offsetAfter","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"SelfMintingOffsetAccumulated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"offsetBefore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"offsetAfter","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalForPeriod","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"SelfMintingOffsetReconciled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"newAllocatorMintingRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSelfMintingRate","type":"uint256"}],"name":"TargetAllocationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toBlockNumber","type":"uint256"}],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"forceTargetNoChangeNotificationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDistributionState","outputs":[{"components":[{"internalType":"uint256","name":"lastDistributionBlock","type":"uint256"},{"internalType":"uint256","name":"lastSelfMintingBlock","type":"uint256"},{"internalType":"uint256","name":"selfMintingOffset","type":"uint256"}],"internalType":"struct DistributionState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIssuancePerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSelfMintingEventMode","outputs":[{"internalType":"enum SelfMintingEventMode","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTargetAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargetCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetData","outputs":[{"components":[{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"lastChangeNotifiedBlock","type":"uint256"}],"internalType":"struct AllocationTarget","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetIssuancePerBlock","outputs":[{"components":[{"internalType":"uint256","name":"allocatorIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"allocatorIssuanceBlockAppliedTo","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceBlockAppliedTo","type":"uint256"}],"internalType":"struct TargetIssuancePerBlock","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"allocation","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governor","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"notifyTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum SelfMintingEventMode","name":"newMode","type":"uint8"}],"name":"setSelfMintingEventMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a03461012e57601f612d9c38819003918201601f19168301916001600160401b038311848410176101325780849260209460405283398101031261012e57516001600160a01b0381169081900361012e57801561011f576080525f516020612d7c5f395f51905f525460ff8160401c16610110576002600160401b03196001600160401b038216016100ba575b604051612c359081610147823960805181818161184601528181611941015281816125e501526128a00152f35b6001600160401b0319166001600160401b039081175f516020612d7c5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61008d565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611009575080631156bdc114610fda57806313a7855d14610fa057806315d3b5d814610f27578063248a9ca314610f095780632f2ff15d14610ed85780633067cb4c14610e3057806332bc934c14610e1357806336568abe14610dcf578063389ed26714610da85780633af5b07314610d7d5780633f4ba83a14610cff578063443990fa14610cbd5780634887693c14610c8a57806348c3c62e14610c0457806349bdfcb014610bc75780634a1293b714610ba157806352c0e18c14610b5b5780635c975abb14610b2d57806363fe3b5614610ac4578063647b368214610a7e578063697cf32214610a4957806379d5fc5414610a265780637c92330b146109d65780638456cb591461095557806384c48422146108f557806387ee921c146108cc5780639010d07c1461087b57806391d148541461082657806393c911a8146107f8578063a217fddf146107de578063a3246ad31461075e578063c2cb354414610716578063c4d66de8146103a4578063c627b7a414610373578063ca15c8731461033d578063ccc5749014610316578063d012a15b146102c5578063d547741f1461028d578063ee56977e1461021d5763f5b541a6146101df575f80fd5b34610219575f3660031901126102195760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5f80fd5b34610219575f3660031901126102195761023561125e565b506060610240611566565b60018101549060036002820154910154906040519261025e84611220565b83526020830152604082015261028b60405180926040809180518452602081015160208501520151910152565bf35b34610219576040366003190112610219576102c36004356102ac6110f2565b906102be6102b98261129d565b6113f1565b6115f0565b005b346102195760403660031901126102195760206102fc6102e3611108565b6102eb61134c565b6102f3611437565b60243590612024565b5f5f516020612ba05f395f51905f525d6040519015158152f35b34610219575f3660031901126102195760206040515f516020612b205f395f51905f528152f35b34610219576020366003190112610219576004355f525f516020612ac05f395f51905f52602052602060405f2054604051908152f35b346102195760403660031901126102195761038c61134c565b610394611437565b60206102fc60243560043561146c565b34610219576020366003190112610219576103bd611108565b5f516020612be05f395f51905f52549060ff8260401c16159167ffffffffffffffff81168015908161070e575b6001149081610704575b1590816106fb575b506106ec5767ffffffffffffffff1981166001175f516020612be05f395f51905f5255826106c0575b5061042e612a74565b610436612a74565b6001600160a01b0381169081156106b1575f516020612b205f395f51905f525f8181525f516020612b405f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80480549083905561059c93929182905f516020612aa05f395f51905f529080a45f516020612b805f395f51905f525f8181525f516020612b405f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f516020612b205f395f51905f5291829055909290915f516020612aa05f395f51905f529080a47f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9295f8181525f516020612b405f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f516020612b205f395f51905f5291829055909290915f516020612aa05f395f51905f529080a461219a565b61065f575b506105aa611566565b600581018054600160401b81101561064b576105cb916001820181556112ee565b81549060018060a01b039060031b1b1916905560078101600260ff198254161790556001439101556105f957005b60ff60401b195f516020612be05f395f51905f5254165f516020612be05f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b634e487b7160e01b5f52604160045260245ffd5b5f516020612b205f395f51905f525f525f516020612ac05f395f51905f526020526106aa907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e612960565b50816105a1565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f516020612be05f395f51905f525582610425565b63f92ee8a960e01b5f5260045ffd5b905015846103fc565b303b1591506103f4565b8491506103ea565b346102195760803660031901126102195760206102fc610734611108565b61073c61134c565b610744611437565b6064359060443590602435906001600160a01b0316611cc8565b34610219576020366003190112610219576004355f525f516020612ac05f395f51905f5260205260405f206040519081602082549182815201915f5260205f20905f5b8181106107c8576107c4856107b88187038261123c565b6040519182918261111e565b0390f35b82548452602090930192600192830192016107a1565b34610219575f3660031901126102195760206040515f8152f35b34610219575f36600319011261021957602060ff6007610816611566565b01541661028b6040518092611160565b346102195760403660031901126102195761083f6110f2565b6004355f525f516020612b405f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610219576040366003190112610219576004355f525f516020612ac05f395f51905f5260205260206108b360243560405f206112ee565b905460405160039290921b1c6001600160a01b03168152f35b346102195760203660031901126102195760206108b360043560056108ef611566565b016112ee565b346102195760203660031901126102195761090e611108565b61091661125e565b506004610921611566565b019060018060a01b03165f52602052606060405f206001815491015461094781836112bb565b916040519261025e84611220565b34610219575f3660031901126102195761096d611395565b5f516020612b605f395f51905f525460ff81166109c75760019060ff1916175f516020612b605f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63d93c066560e01b5f5260045ffd5b346102195760403660031901126102195760206109f1611108565b602435906109fd61134c565b6004610a07611566565b019060018060a01b03165f52825280600260405f200155604051908152f35b34610219575f366003190112610219576020610a40611566565b54604051908152f35b346102195760203660031901126102195760206102fc610a67611108565b610a6f61134c565b610a77611437565b4390612024565b346102195760603660031901126102195760206102fc610a9c611108565b610aa461134c565b610aac611437565b439060443590602435906001600160a01b0316611cc8565b34610219575f366003190112610219576005610ade611566565b016040519081602082549182815201915f5260205f20905f5b818110610b0e576107c4856107b88187038261123c565b82546001600160a01b0316845260209093019260019283019201610af7565b34610219575f36600319011261021957602060ff5f516020612b605f395f51905f5254166040519015158152f35b3461021957602036600319011261021957610b7461134c565b610b7c611437565b6020610b89600435611645565b5f5f516020612ba05f395f51905f525d604051908152f35b34610219575f3660031901126102195760206005610bbd611566565b0154604051908152f35b34610219575f366003190112610219576001610be1611566565b01544303610bf5576020435b604051908152f35b6020610bff611fda565b610bed565b3461021957602036600319011261021957610c1d611108565b610c2561125e565b506004610c30611566565b019060018060a01b03165f52602052606060405f20600260405191610c5483611220565b80548352600181015460208401520154604082015261028b60405180926040809180518452602081015160208501520151910152565b346102195760203660031901126102195760206102fc610ca8611108565b610cb061134c565b610cb8611437565b611f60565b346102195760403660031901126102195760206102fc610cdb611108565b610ce361134c565b610ceb611437565b4390602435906001600160a01b0316611a18565b34610219575f36600319011261021957610d17611395565b5f516020612b605f395f51905f525460ff811615610d6e5760ff19165f516020612b605f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b34610219575f36600319011261021957610d9561134c565b610d9d611437565b6020610b8943611645565b34610219575f3660031901126102195760206040515f516020612b805f395f51905f528152f35b3461021957604036600319011261021957610de86110f2565b336001600160a01b03821603610e04576102c3906004356115f0565b63334bd91960e11b5f5260045ffd5b34610219575f366003190112610219576020604051620f42408152f35b34610219576020366003190112610219576080610e4b611108565b5f6060604051610e5a81611204565b8281528260208201528260408201520152610e73611566565b9060018060a01b03165f526004810160205260405f208054916002600180830154930154910154916060604051610ea981611204565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b34610219576040366003190112610219576102c3600435610ef76110f2565b90610f046102b98261129d565b6115aa565b34610219576020366003190112610219576020610bed60043561129d565b34610219575f366003190112610219576060610f4161125e565b610f7a610f4c611566565b6006610f6882545f80526004840160205260405f20549061127c565b9182855201549081604085015261127c565b602082015261028b60405180926040809180518452602081015160208501520151910152565b3461021957602036600319011261021957600435600381101561021957610fd0602091610fcb61134c565b611181565b6040519015158152f35b3461021957602036600319011261021957610ff361134c565b610ffb611437565b60206102fc4360043561146c565b34610219576020366003190112610219576004359063ffffffff60e01b821680920361021957602091631e768dff60e21b81149081156110e1575b81156110d0575b81156110bf575b8115611060575b5015158152f35b631cf1473b60e31b81149150811561107a575b5083611059565b635a05180f60e01b811491508115611094575b5083611073565b637965db0b60e01b8114915081156110ae575b508361108d565b6301ffc9a760e01b149050836110a7565b632461e31760e11b81149150611052565b63a896602d60e01b8114915061104b565b6350d8541d60e01b81149150611044565b602435906001600160a01b038216820361021957565b600435906001600160a01b038216820361021957565b60206040818301928281528451809452019201905f5b8181106111415750505090565b82516001600160a01b0316845260209384019390920191600101611134565b90600382101561116d5752565b634e487b7160e01b5f52602160045260245ffd5b600761118b611566565b019060ff825416600381101561116d57600382101561116d578082146111fc576111f66040927f3f59746e46bfb9af931035055d53b82d1b70968466065162b7dbf8e998aee6299460ff1981541660ff83161790556111ec84518094611160565b6020830190611160565ba1600190565b505050600190565b6080810190811067ffffffffffffffff82111761064b57604052565b6060810190811067ffffffffffffffff82111761064b57604052565b90601f8019910116810190811067ffffffffffffffff82111761064b57604052565b6040519061126b82611220565b5f6040838281528260208201520152565b9190820391821161128957565b634e487b7160e01b5f52601160045260245ffd5b5f525f516020612b405f395f51905f52602052600160405f20015490565b9190820180921161128957565b8054156112da575f5260205f20905f90565b634e487b7160e01b5f52603260045260245ffd5b80548210156112da575f5260205f2001905f90565b80549190600160401b83101561064b578261132691600161134a950181556112ee565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b565b335f9081525f516020612ae05f395f51905f52602052604090205460ff161561137157565b63e2517d3f60e01b5f52336004525f516020612b205f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff16156113cd57565b63e2517d3f60e01b5f52336004525f516020612b805f395f51905f5260245260445ffd5b5f8181525f516020612b405f395f51905f526020908152604080832033845290915290205460ff16156114215750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f516020612ba05f395f51905f525c61145d5760015f516020612ba05f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b611474611566565b80549283831461155d57611486611fda565b10611556576114bb600582016114b561149e826112c8565b905460039190911b1c6001600160a01b0316611f60565b506112c8565b905460039190911b1c6001600160a01b03165f908152600482016020526040902080546114e881856112bb565b851161153c5792849281926115297f2925be3e6d4b2cbcec6c06d5060fb3b53f160410555e45ee0a1f6dc7ae9b24c097611524856040996112bb565b61127c565b90555582519182526020820152a1600190565b8385632c421f2b60e21b5f5260045260245260445260645ffd5b5050505f90565b50505050600190565b604051602081017f109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd481526020825261159f60408361123c565b9051902060ff191690565b6115b48282612232565b91826115bf57505090565b5f9182525f516020612ac05f395f51905f5260205260409091206115ec916001600160a01b031690612960565b5090565b6115fa82826122d0565b918261160557505090565b5f9182525f516020612ac05f395f51905f5260205260409091206115ec916001600160a01b0316906129c3565b8181029291811591840414171561128957565b61164d61236c565b611655611566565b600181019081548381111580611a0e575b156119f457611675908461127c565b9182156119ee578382549161168a8584611632565b926003850154948486105f146119e7576116a4868661127c565b915b8261174a575b505050556116b8611566565b9043850361172c575f935b8484036116d6575b505060039150015590565b6116e0908661127c565b60018101809111611289577f1a45018bdab6039c806fac73d617b3bc5c6a2a0f22f6f90d2ca202b083087f99606060039588946040519182528860208301526040820152a35f806116cb565b828110156117445761173e818461127c565b936116c3565b5f61173e565b6117969293945061178e90611761600584016112c8565b905460039190911b1c6001600160a01b03165f90815260048401602052604090206006909301549061127c565b90549061127c565b906117a18683611632565b808210156117bf5750868093926117b792612553565b5f80806116ac565b9695939294909791506117d0611566565b9260018401549560018701809711611289576001999860046005870196019a5b86548110156118f75761180381886112ee565b905460039190911b1c6001600160a01b03165f81815260208e9052604090205490919089908061183a575b505060019150016117f0565b9061184491611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b15610219576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af19182156118ec575f516020612b005f395f51905f5260208f94938f94976001986118dc575b50604051908152a4885f61182e565b5f6118e69161123c565b5f6118cd565b6040513d5f823e3d90fd5b5061190e91949a508899989592969897939761127c565b908161191d575b5050506117b7565b611926906112c8565b905460039190911b1c6001600160a01b0316918215611915577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694509091843b15610219576040516340c10f1960e01b81526001600160a01b038216600482015260248101849052945f908690604490829084905af19485156118ec5760208a96945f516020612b005f395f51905f529288966119d7575b50604051908152a45f8080611915565b5f6119e19161123c565b5f6119c7565b5f916116a6565b50505090565b8363a0d2b9db60e01b5f526004526024524360445260645ffd5b5043841115611666565b9091611a255f84846126ba565b156111fc57611a32611fda565b10611cc257611a4081611f60565b50611a5761149e6005611a51611566565b016112c8565b50611a60611566565b600481019060018060a01b0383165f528160205260405f2091611a85600583016112c8565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611ac491600191611ab9916112bb565b9401938454906112bb565b808611611cac5791600691611adc87611aea9561127c565b90550191825490549061127c565b9055611af4611566565b6001600160a01b0382165f9081526004820160205260409020908315801590611ca5575b15611b8357915f6001835f516020612bc05f395f51905f529584604096541580611b78575b611b65575b505086815501555b81519384525f60208501526001600160a01b031692a2600190565b6005611b719201611303565b5f84611b42565b508383015415611b3d565b505090611b8e611566565b916001600160a01b03811690600584019060015b825480821015611c875784611bb783866112ee565b905460039190911b1c6001600160a01b031614611bd75750600101611ba2565b905f96929394959619820191821161128957611326611bf9611c1293876112ee565b905460039190911b1c6001600160a01b031691866112ee565b8254908115611c73575f516020612bc05f395f51905f52946040946004935f190190611c56611c4183836112ee565b81549060018060a01b039060031b1b19169055565b555f52016020525f60028382208281558260018201550155611b4a565b634e487b7160e01b5f52603160045260245ffd5b505090505f516020612bc05f395f51905f5292935060409150611b4a565b505f611b18565b8563162930e360e11b5f5260045260245260445ffd5b50505f90565b92919091611cd78284866126ba565b1561155d57611ce4611fda565b1061155657611cf283611f60565b50611d0361149e6005611a51611566565b50611d0c611566565b600481019060018060a01b0385165f528160205260405f2091611d31600583016112c8565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611d6591600191611ab9916112bb565b80611d7086886112bb565b11611d7b86886112bb565b90611f4b57506006611dad938693611d9a856115248b611da89761127c565b90550193845490549061127c565b6112bb565b9055611db7611566565b6001600160a01b0384165f9081526004820160205260409020908315801590611f42575b15611e47579180600183604095885f516020612bc05f395f51905f52989996541580611e3c575b611e29575b505087815501555b825194855260208501526001600160a01b031692a2600190565b6005611e359201611303565b5f85611e07565b508383015415611e02565b505091611e52611566565b926001600160a01b03821691600585019160015b835480821015611f235785611e7b83876112ee565b905460039190911b1c6001600160a01b031614611e9b5750600101611e66565b905f9792939495969719820191821161128957611326611ebe611ed793886112ee565b905460039190911b1c6001600160a01b031691876112ee565b8354908115611c73575f516020612bc05f395f51905f52956040956004935f190190611f06611c4183836112ee565b555f52016020525f60028482208281558260018201550155611e0f565b50509091505f516020612bc05f395f51905f5293945060409250611e0f565b50821515611ddb565b63162930e360e11b5f5260045260245260445ffd5b6001600160a01b03168015611fbd576004611f79611566565b01815f52602052600260405f20018054431115611fd357439055803b15610219575f8091600460405180948193631efc6b4160e11b83525af180156118ec57611fc3575b50600190565b5f611fcd9161123c565b5f611fbd565b5050600190565b611fe2611566565b611fea61236c565b60ff5f516020612b605f395f51905f52541661201d5760030154156120155761201243611645565b90565b612012612806565b6001015490565b61202c611566565b90600582019061203b826112c8565b90546001600160a01b038381169660039390931b9190911c16939085851461218f57835460015b818110612152575050612073611fda565b106121495760046120ac9161208786611f60565b5061209184611f60565b500191855f5282602052611326600260405f200154946112c8565b6001600160a01b0383165f9081526020829052604080822086835291209080820361212b575b505060018060a01b0383165f52806020525f6002604082208281558260018201550155835f52602052600260405f2001557ef06471e88e0bc1db6b6126efdb09f80b597e6ddc145ff0dcabd12afab4ec575f80a3600190565b60028181925484556001810154600185015501549101555f806120d2565b50505050505f90565b8761215d82886112ee565b905460039190911b1c6001600160a01b03161461217c57600101612062565b8763f158185d60e01b5f5260045260245ffd5b505050505050600190565b6001600160a01b0381165f9081525f516020612ae05f395f51905f52602052604090205460ff1661222d576001600160a01b03165f8181525f516020612ae05f395f51905f5260205260408120805460ff191660011790553391905f516020612b205f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611cc2575f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611cc2575f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b612374611566565b6002810190815443811461254e5761238c814361127c565b9260018201809211611289576003830180549060ff5f516020612b605f395f51905f5254168015612545575b6124ea575b50504390556006820154806123d3575b50505050565b60ff600784015416600381101561116d576002810361249657505060058201805493600490930192905f5b858110612415575050505050505b5f8080806123cd565b80612422600192846112ee565b838060a01b0391549060031b1c16828060a01b0381165f5286602052858360405f2001548681612457575b50505050016123fe565b61246091611632565b916040519283527fa34db09d4126dd8dcd1d29f3df65c01dcac405127546e380add77fedca459ba760204394a45f85818661244d565b9193909250906001146124ac575b50505061240c565b6124b591611632565b906040519182527fcef44ce1a1fc7ca1f3078daf79d3b60646d0e751bc72a69bff12f66c4aef3b8d60204393a35f80806124a4565b6125016124fb876006880154611632565b836112bb565b809155808203156123bd576040519182526020820152827f0539ce444a515b8aa8769802297761fbec80b5b543c617714bf5e0611cf669db60404393a35f806123bd565b508115156123b8565b505050565b91909161255e611566565b9280158080156126b2575b6126ab57600185015492600184018094116112895760048601969560050160015b81548110156126a05761259d81836112ee565b905460039190911b1c6001600160a01b03165f81815260208b905260409020549091908590806125d4575b5050600191500161258a565b6125de9086611632565b9061268c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290879004833b15610219576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af19182156118ec575f516020612b005f395f51905f5260208b936001978e9661267c575b50604051908152a4845f6125c8565b5f6126869161123c565b5f61266d565b634e487b7160e01b5f52601260045260245ffd5b505050505050509050565b5050505050565b508215612569565b6001600160a01b0316919082156127f7576126d3611566565b600581016126fd6126e3826112c8565b905460039190911b1c6001600160a01b03168614916112c8565b905460039190911b1c6001600160a01b0316906127e55750600490845f520160205260405f20828282541491826127d7575b50506115565715908115916127cd575b5061274a5750600190565b6040516301ffc9a760e01b815263aee4dc4360e01b6004820152602081602481855afa9081156118ec575f91612792575b50611fbd5763a5fe861560e01b5f5260045260245ffd5b90506020813d6020116127c5575b816127ad6020938361123c565b8101031261021957518015158103610219575f61277b565b3d91506127a0565b905015155f61273f565b60010154149050825f61272f565b63fda6c18760e01b5f5260045260245ffd5b6322a4ec7b60e11b5f5260045ffd5b61280e611566565b906001820191825490612821824361127c565b9081156129595760018301809311611289575f94936004600583019201955b825481101561294c5761285381846112ee565b905460039190911b1c6001600160a01b03169081156129435760018060a01b0382165f52876020528460405f205480612894575b5050600191505b01612840565b9061289e91611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692833b15610219576040516340c10f1960e01b81526001600160a01b038216600482015260248101839052935f908590604490829084905af19081156118ec576001948992612933575b506040519283525f516020612b005f395f51905f5260204394a4845f612887565b5f61293d9161123c565b5f612912565b6001915061288e565b5094505050504390554390565b5090925050565b6001810190825f528160205260405f2054155f14611556578054600160401b81101561064b576129b061299a8260018794018555846112ee565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b906001820191815f528260205260405f20548015155f14612a6c575f1981018181116112895782545f1981019190821161128957818103612a37575b50505080548015611c73575f190190612a1882826112ee565b8154905f199060031b1b19169055555f526020525f6040812055600190565b612a57612a4761299a93866112ee565b90549060031b1c928392866112ee565b90555f528360205260405f20555f80806129ff565b505050505f90565b60ff5f516020612be05f395f51905f525460401c1615612a9057565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8030c56d855d8df534c916b78eac3522e5fafd59f48799c4a97d42e80f6e08989607935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5502dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001bd3f0d2f1001a856d81215ceb86c548bdbc3bf52480a08978f8c3ea6e2bd421f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201c8c01bf4f8279df7af8f2e90eea4858f9d7498c6312cc7cc9542590ff22a1fb64736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","opcodes":"PUSH1 0xA0 CALLVALUE PUSH2 0x12E JUMPI PUSH1 0x1F PUSH2 0x2D9C CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x132 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x12E JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x12E JUMPI DUP1 ISZERO PUSH2 0x11F JUMPI PUSH1 0x80 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2D7C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 PUSH1 0x40 SHR AND PUSH2 0x110 JUMPI PUSH1 0x2 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND ADD PUSH2 0xBA JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C35 SWAP1 DUP2 PUSH2 0x147 DUP3 CODECOPY PUSH1 0x80 MLOAD DUP2 DUP2 DUP2 PUSH2 0x1846 ADD MSTORE DUP2 DUP2 PUSH2 0x1941 ADD MSTORE DUP2 DUP2 PUSH2 0x25E5 ADD MSTORE PUSH2 0x28A0 ADD MSTORE RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2D7C PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 SWAP1 LOG1 PUSH0 PUSH2 0x8D JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH4 0x69E4EEB3 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x1009 JUMPI POP DUP1 PUSH4 0x1156BDC1 EQ PUSH2 0xFDA JUMPI DUP1 PUSH4 0x13A7855D EQ PUSH2 0xFA0 JUMPI DUP1 PUSH4 0x15D3B5D8 EQ PUSH2 0xF27 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF09 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xED8 JUMPI DUP1 PUSH4 0x3067CB4C EQ PUSH2 0xE30 JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0xE13 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xDCF JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0xDA8 JUMPI DUP1 PUSH4 0x3AF5B073 EQ PUSH2 0xD7D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xCFF JUMPI DUP1 PUSH4 0x443990FA EQ PUSH2 0xCBD JUMPI DUP1 PUSH4 0x4887693C EQ PUSH2 0xC8A JUMPI DUP1 PUSH4 0x48C3C62E EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0x49BDFCB0 EQ PUSH2 0xBC7 JUMPI DUP1 PUSH4 0x4A1293B7 EQ PUSH2 0xBA1 JUMPI DUP1 PUSH4 0x52C0E18C EQ PUSH2 0xB5B JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB2D JUMPI DUP1 PUSH4 0x63FE3B56 EQ PUSH2 0xAC4 JUMPI DUP1 PUSH4 0x647B3682 EQ PUSH2 0xA7E JUMPI DUP1 PUSH4 0x697CF322 EQ PUSH2 0xA49 JUMPI DUP1 PUSH4 0x79D5FC54 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0x7C92330B EQ PUSH2 0x9D6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0x84C48422 EQ PUSH2 0x8F5 JUMPI DUP1 PUSH4 0x87EE921C EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x826 JUMPI DUP1 PUSH4 0x93C911A8 EQ PUSH2 0x7F8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x7DE JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xC2CB3544 EQ PUSH2 0x716 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xC627B7A4 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xD012A15B EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0xEE56977E EQ PUSH2 0x21D JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x1DF JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x235 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x60 PUSH2 0x240 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD SWAP2 ADD SLOAD SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x25E DUP5 PUSH2 0x1220 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x2C3 PUSH1 0x4 CALLDATALOAD PUSH2 0x2AC PUSH2 0x10F2 JUMP JUMPDEST SWAP1 PUSH2 0x2BE PUSH2 0x2B9 DUP3 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x13F1 JUMP JUMPDEST PUSH2 0x15F0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0x2E3 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x134C JUMP JUMPDEST PUSH2 0x2F3 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x2024 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x38C PUSH2 0x134C JUMP JUMPDEST PUSH2 0x394 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2FC PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x146C JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x3BD PUSH2 0x1108 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x70E JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x704 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x6FB JUMPI JUMPDEST POP PUSH2 0x6EC JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x6C0 JUMPI JUMPDEST POP PUSH2 0x42E PUSH2 0x2A74 JUMP JUMPDEST PUSH2 0x436 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x6B1 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x59C SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0x219A JUMP JUMPDEST PUSH2 0x65F JUMPI JUMPDEST POP PUSH2 0x5AA PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x64B JUMPI PUSH2 0x5CB SWAP2 PUSH1 0x1 DUP3 ADD DUP2 SSTORE PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE PUSH1 0x7 DUP2 ADD PUSH1 0x2 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH1 0x1 NUMBER SWAP2 ADD SSTORE PUSH2 0x5F9 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x6AA SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0x2960 JUMP JUMPDEST POP DUP2 PUSH2 0x5A1 JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x425 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x3FC JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x3F4 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x3EA JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0x734 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x73C PUSH2 0x134C JUMP JUMPDEST PUSH2 0x744 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CC8 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x7C8 JUMPI PUSH2 0x7C4 DUP6 PUSH2 0x7B8 DUP2 DUP8 SUB DUP3 PUSH2 0x123C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x111E JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x7A1 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH1 0x7 PUSH2 0x816 PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD AND PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH2 0x1160 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x83F PUSH2 0x10F2 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x8B3 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x8B3 PUSH1 0x4 CALLDATALOAD PUSH1 0x5 PUSH2 0x8EF PUSH2 0x1566 JUMP JUMPDEST ADD PUSH2 0x12EE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x90E PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x916 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x921 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x1 DUP2 SLOAD SWAP2 ADD SLOAD PUSH2 0x947 DUP2 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x25E DUP5 PUSH2 0x1220 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x96D PUSH2 0x1395 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND PUSH2 0x9C7 JUMPI PUSH1 0x1 SWAP1 PUSH1 0xFF NOT AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x9F1 PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x9FD PUSH2 0x134C JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA07 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0xA40 PUSH2 0x1566 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xA67 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xA6F PUSH2 0x134C JUMP JUMPDEST PUSH2 0xA77 PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH2 0x2024 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xA9C PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xAA4 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xAAC PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CC8 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x5 PUSH2 0xADE PUSH2 0x1566 JUMP JUMPDEST ADD PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0xB0E JUMPI PUSH2 0x7C4 DUP6 PUSH2 0x7B8 DUP2 DUP8 SUB DUP3 PUSH2 0x123C JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xAF7 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xB74 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xB7C PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xB89 PUSH1 0x4 CALLDATALOAD PUSH2 0x1645 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x5 PUSH2 0xBBD PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x1 PUSH2 0xBE1 PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD NUMBER SUB PUSH2 0xBF5 JUMPI PUSH1 0x20 NUMBER JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x20 PUSH2 0xBFF PUSH2 0x1FDA JUMP JUMPDEST PUSH2 0xBED JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xC1D PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xC25 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0xC30 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x2 PUSH1 0x40 MLOAD SWAP2 PUSH2 0xC54 DUP4 PUSH2 0x1220 JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x20 DUP5 ADD MSTORE ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xCA8 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x1437 JUMP JUMPDEST PUSH2 0x1F60 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xCDB PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xCE3 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xCEB PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1A18 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xD17 PUSH2 0x1395 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xD6E JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xD95 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xD9D PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xB89 NUMBER PUSH2 0x1645 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xDE8 PUSH2 0x10F2 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0xE04 JUMPI PUSH2 0x2C3 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F0 JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x80 PUSH2 0xE4B PUSH2 0x1108 JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xE5A DUP2 PUSH2 0x1204 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE PUSH2 0xE73 PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x4 DUP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP1 SLOAD SWAP2 PUSH1 0x2 PUSH1 0x1 DUP1 DUP4 ADD SLOAD SWAP4 ADD SLOAD SWAP2 ADD SLOAD SWAP2 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xEA9 DUP2 PUSH2 0x1204 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 DUP4 MSTORE PUSH1 0x40 DUP2 ADD SWAP4 DUP5 MSTORE ADD SWAP3 DUP4 MSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE MLOAD PUSH1 0x20 DUP5 ADD MSTORE MLOAD PUSH1 0x40 DUP4 ADD MSTORE MLOAD PUSH1 0x60 DUP3 ADD MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x2C3 PUSH1 0x4 CALLDATALOAD PUSH2 0xEF7 PUSH2 0x10F2 JUMP JUMPDEST SWAP1 PUSH2 0xF04 PUSH2 0x2B9 DUP3 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0xBED PUSH1 0x4 CALLDATALOAD PUSH2 0x129D JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x60 PUSH2 0xF41 PUSH2 0x125E JUMP JUMPDEST PUSH2 0xF7A PUSH2 0xF4C PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x6 PUSH2 0xF68 DUP3 SLOAD PUSH0 DUP1 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP2 DUP3 DUP6 MSTORE ADD SLOAD SWAP1 DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x127C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x219 JUMPI PUSH2 0xFD0 PUSH1 0x20 SWAP2 PUSH2 0xFCB PUSH2 0x134C JUMP JUMPDEST PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xFF3 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xFFB PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2FC NUMBER PUSH1 0x4 CALLDATALOAD PUSH2 0x146C JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x219 JUMPI PUSH1 0x20 SWAP2 PUSH4 0x1E768DFF PUSH1 0xE2 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x10E1 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10D0 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10BF JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x1060 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x107A JUMPI JUMPDEST POP DUP4 PUSH2 0x1059 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x1094 JUMPI JUMPDEST POP DUP4 PUSH2 0x1073 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10AE JUMPI JUMPDEST POP DUP4 PUSH2 0x108D JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x10A7 JUMP JUMPDEST PUSH4 0x2461E317 PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x1052 JUMP JUMPDEST PUSH4 0xA896602D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x104B JUMP JUMPDEST PUSH4 0x50D8541D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x1044 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x219 JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x219 JUMPI JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 DUP2 DUP4 ADD SWAP3 DUP3 DUP2 MSTORE DUP5 MLOAD DUP1 SWAP5 MSTORE ADD SWAP3 ADD SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x1141 JUMPI POP POP POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1134 JUMP JUMPDEST SWAP1 PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x116D JUMPI MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x7 PUSH2 0x118B PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0xFF DUP3 SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x116D JUMPI PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x116D JUMPI DUP1 DUP3 EQ PUSH2 0x11FC JUMPI PUSH2 0x11F6 PUSH1 0x40 SWAP3 PUSH32 0x3F59746E46BFB9AF931035055D53B82D1B70968466065162B7DBF8E998AEE629 SWAP5 PUSH1 0xFF NOT DUP2 SLOAD AND PUSH1 0xFF DUP4 AND OR SWAP1 SSTORE PUSH2 0x11EC DUP5 MLOAD DUP1 SWAP5 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1160 JUMP JUMPDEST LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x60 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x126B DUP3 PUSH2 0x1220 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x1289 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x1289 JUMPI JUMP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x12DA JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x12DA JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST DUP1 SLOAD SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL DUP4 LT ISZERO PUSH2 0x64B JUMPI DUP3 PUSH2 0x1326 SWAP2 PUSH1 0x1 PUSH2 0x134A SWAP6 ADD DUP2 SSTORE PUSH2 0x12EE JUMP JUMPDEST SWAP1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL DUP4 DUP2 SHL NOT SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP4 AND SWAP1 SWAP3 SHL OR SWAP1 SSTORE JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1371 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13CD JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1421 JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TLOAD PUSH2 0x145D JUMPI PUSH1 0x1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE JUMP JUMPDEST PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x1474 PUSH2 0x1566 JUMP JUMPDEST DUP1 SLOAD SWAP3 DUP4 DUP4 EQ PUSH2 0x155D JUMPI PUSH2 0x1486 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1556 JUMPI PUSH2 0x14BB PUSH1 0x5 DUP3 ADD PUSH2 0x14B5 PUSH2 0x149E DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x14E8 DUP2 DUP6 PUSH2 0x12BB JUMP JUMPDEST DUP6 GT PUSH2 0x153C JUMPI SWAP3 DUP5 SWAP3 DUP2 SWAP3 PUSH2 0x1529 PUSH32 0x2925BE3E6D4B2CBCEC6C06D5060FB3B53F160410555E45EE0A1F6DC7AE9B24C0 SWAP8 PUSH2 0x1524 DUP6 PUSH1 0x40 SWAP10 PUSH2 0x12BB JUMP JUMPDEST PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP4 DUP6 PUSH4 0x2C421F2B PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH32 0x109CDEB08B6FCB52A0F8A35AF1BF023AFDACDC6E602B08424B2171D0F4FA3CD4 DUP2 MSTORE PUSH1 0x20 DUP3 MSTORE PUSH2 0x159F PUSH1 0x40 DUP4 PUSH2 0x123C JUMP JUMPDEST SWAP1 MLOAD SWAP1 KECCAK256 PUSH1 0xFF NOT AND SWAP1 JUMP JUMPDEST PUSH2 0x15B4 DUP3 DUP3 PUSH2 0x2232 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x15BF JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x15EC SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2960 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x15FA DUP3 DUP3 PUSH2 0x22D0 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x1605 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x15EC SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x29C3 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x1289 JUMPI JUMP JUMPDEST PUSH2 0x164D PUSH2 0x236C JUMP JUMPDEST PUSH2 0x1655 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP2 SLOAD DUP4 DUP2 GT ISZERO DUP1 PUSH2 0x1A0E JUMPI JUMPDEST ISZERO PUSH2 0x19F4 JUMPI PUSH2 0x1675 SWAP1 DUP5 PUSH2 0x127C JUMP JUMPDEST SWAP2 DUP3 ISZERO PUSH2 0x19EE JUMPI DUP4 DUP3 SLOAD SWAP2 PUSH2 0x168A DUP6 DUP5 PUSH2 0x1632 JUMP JUMPDEST SWAP3 PUSH1 0x3 DUP6 ADD SLOAD SWAP5 DUP5 DUP7 LT PUSH0 EQ PUSH2 0x19E7 JUMPI PUSH2 0x16A4 DUP7 DUP7 PUSH2 0x127C JUMP JUMPDEST SWAP2 JUMPDEST DUP3 PUSH2 0x174A JUMPI JUMPDEST POP POP POP SSTORE PUSH2 0x16B8 PUSH2 0x1566 JUMP JUMPDEST SWAP1 NUMBER DUP6 SUB PUSH2 0x172C JUMPI PUSH0 SWAP4 JUMPDEST DUP5 DUP5 SUB PUSH2 0x16D6 JUMPI JUMPDEST POP POP PUSH1 0x3 SWAP2 POP ADD SSTORE SWAP1 JUMP JUMPDEST PUSH2 0x16E0 SWAP1 DUP7 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x1289 JUMPI PUSH32 0x1A45018BDAB6039C806FAC73D617B3BC5C6A2A0F22F6F90D2CA202B083087F99 PUSH1 0x60 PUSH1 0x3 SWAP6 DUP9 SWAP5 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE DUP9 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG3 PUSH0 DUP1 PUSH2 0x16CB JUMP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1744 JUMPI PUSH2 0x173E DUP2 DUP5 PUSH2 0x127C JUMP JUMPDEST SWAP4 PUSH2 0x16C3 JUMP JUMPDEST PUSH0 PUSH2 0x173E JUMP JUMPDEST PUSH2 0x1796 SWAP3 SWAP4 SWAP5 POP PUSH2 0x178E SWAP1 PUSH2 0x1761 PUSH1 0x5 DUP5 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 PUSH2 0x17A1 DUP7 DUP4 PUSH2 0x1632 JUMP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x17BF JUMPI POP DUP7 DUP1 SWAP4 SWAP3 PUSH2 0x17B7 SWAP3 PUSH2 0x2553 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH2 0x16AC JUMP JUMPDEST SWAP7 SWAP6 SWAP4 SWAP3 SWAP5 SWAP1 SWAP8 SWAP2 POP PUSH2 0x17D0 PUSH2 0x1566 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP5 ADD SLOAD SWAP6 PUSH1 0x1 DUP8 ADD DUP1 SWAP8 GT PUSH2 0x1289 JUMPI PUSH1 0x1 SWAP10 SWAP9 PUSH1 0x4 PUSH1 0x5 DUP8 ADD SWAP7 ADD SWAP11 JUMPDEST DUP7 SLOAD DUP2 LT ISZERO PUSH2 0x18F7 JUMPI PUSH2 0x1803 DUP2 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP15 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP10 SWAP1 DUP1 PUSH2 0x183A JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x17F0 JUMP JUMPDEST SWAP1 PUSH2 0x1844 SWAP2 PUSH2 0x1632 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x18EC JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP16 SWAP5 SWAP4 DUP16 SWAP5 SWAP8 PUSH1 0x1 SWAP9 PUSH2 0x18DC JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP9 PUSH0 PUSH2 0x182E JUMP JUMPDEST PUSH0 PUSH2 0x18E6 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x18CD JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP PUSH2 0x190E SWAP2 SWAP5 SWAP11 POP DUP9 SWAP10 SWAP9 SWAP6 SWAP3 SWAP7 SWAP9 SWAP8 SWAP4 SWAP8 PUSH2 0x127C JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x191D JUMPI JUMPDEST POP POP POP PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x1926 SWAP1 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 ISZERO PUSH2 0x1915 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 POP SWAP1 SWAP2 DUP5 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP5 PUSH0 SWAP1 DUP7 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP5 DUP6 ISZERO PUSH2 0x18EC JUMPI PUSH1 0x20 DUP11 SWAP7 SWAP5 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 DUP9 SWAP7 PUSH2 0x19D7 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 PUSH0 DUP1 DUP1 PUSH2 0x1915 JUMP JUMPDEST PUSH0 PUSH2 0x19E1 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x19C7 JUMP JUMPDEST PUSH0 SWAP2 PUSH2 0x16A6 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST DUP4 PUSH4 0xA0D2B9DB PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE NUMBER PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP NUMBER DUP5 GT ISZERO PUSH2 0x1666 JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x1A25 PUSH0 DUP5 DUP5 PUSH2 0x26BA JUMP JUMPDEST ISZERO PUSH2 0x11FC JUMPI PUSH2 0x1A32 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1CC2 JUMPI PUSH2 0x1A40 DUP2 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x1A57 PUSH2 0x149E PUSH1 0x5 PUSH2 0x1A51 PUSH2 0x1566 JUMP JUMPDEST ADD PUSH2 0x12C8 JUMP JUMPDEST POP PUSH2 0x1A60 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1A85 PUSH1 0x5 DUP4 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1AC4 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x1AB9 SWAP2 PUSH2 0x12BB JUMP JUMPDEST SWAP5 ADD SWAP4 DUP5 SLOAD SWAP1 PUSH2 0x12BB JUMP JUMPDEST DUP1 DUP7 GT PUSH2 0x1CAC JUMPI SWAP2 PUSH1 0x6 SWAP2 PUSH2 0x1ADC DUP8 PUSH2 0x1AEA SWAP6 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE ADD SWAP2 DUP3 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1AF4 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CA5 JUMPI JUMPDEST ISZERO PUSH2 0x1B83 JUMPI SWAP2 PUSH0 PUSH1 0x1 DUP4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 DUP5 PUSH1 0x40 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1B78 JUMPI JUMPDEST PUSH2 0x1B65 JUMPI JUMPDEST POP POP DUP7 DUP2 SSTORE ADD SSTORE JUMPDEST DUP2 MLOAD SWAP4 DUP5 MSTORE PUSH0 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1B71 SWAP3 ADD PUSH2 0x1303 JUMP JUMPDEST PUSH0 DUP5 PUSH2 0x1B42 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1B3D JUMP JUMPDEST POP POP SWAP1 PUSH2 0x1B8E PUSH2 0x1566 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x5 DUP5 ADD SWAP1 PUSH1 0x1 JUMPDEST DUP3 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1C87 JUMPI DUP5 PUSH2 0x1BB7 DUP4 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1BD7 JUMPI POP PUSH1 0x1 ADD PUSH2 0x1BA2 JUMP JUMPDEST SWAP1 PUSH0 SWAP7 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x1289 JUMPI PUSH2 0x1326 PUSH2 0x1BF9 PUSH2 0x1C12 SWAP4 DUP8 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 PUSH2 0x12EE JUMP JUMPDEST DUP3 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1C73 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP5 PUSH1 0x40 SWAP5 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1C56 PUSH2 0x1C41 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP4 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1B4A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP SWAP1 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 SWAP4 POP PUSH1 0x40 SWAP2 POP PUSH2 0x1B4A JUMP JUMPDEST POP PUSH0 PUSH2 0x1B18 JUMP JUMPDEST DUP6 PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP1 SWAP2 PUSH2 0x1CD7 DUP3 DUP5 DUP7 PUSH2 0x26BA JUMP JUMPDEST ISZERO PUSH2 0x155D JUMPI PUSH2 0x1CE4 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1556 JUMPI PUSH2 0x1CF2 DUP4 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x1D03 PUSH2 0x149E PUSH1 0x5 PUSH2 0x1A51 PUSH2 0x1566 JUMP JUMPDEST POP PUSH2 0x1D0C PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1D31 PUSH1 0x5 DUP4 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1D65 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x1AB9 SWAP2 PUSH2 0x12BB JUMP JUMPDEST DUP1 PUSH2 0x1D70 DUP7 DUP9 PUSH2 0x12BB JUMP JUMPDEST GT PUSH2 0x1D7B DUP7 DUP9 PUSH2 0x12BB JUMP JUMPDEST SWAP1 PUSH2 0x1F4B JUMPI POP PUSH1 0x6 PUSH2 0x1DAD SWAP4 DUP7 SWAP4 PUSH2 0x1D9A DUP6 PUSH2 0x1524 DUP12 PUSH2 0x1DA8 SWAP8 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE ADD SWAP4 DUP5 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST PUSH2 0x12BB JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1DB7 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1F42 JUMPI JUMPDEST ISZERO PUSH2 0x1E47 JUMPI SWAP2 DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 SWAP6 DUP9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP9 SWAP10 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1E3C JUMPI JUMPDEST PUSH2 0x1E29 JUMPI JUMPDEST POP POP DUP8 DUP2 SSTORE ADD SSTORE JUMPDEST DUP3 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1E35 SWAP3 ADD PUSH2 0x1303 JUMP JUMPDEST PUSH0 DUP6 PUSH2 0x1E07 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1E02 JUMP JUMPDEST POP POP SWAP2 PUSH2 0x1E52 PUSH2 0x1566 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 PUSH1 0x5 DUP6 ADD SWAP2 PUSH1 0x1 JUMPDEST DUP4 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1F23 JUMPI DUP6 PUSH2 0x1E7B DUP4 DUP8 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E9B JUMPI POP PUSH1 0x1 ADD PUSH2 0x1E66 JUMP JUMPDEST SWAP1 PUSH0 SWAP8 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 SWAP8 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x1289 JUMPI PUSH2 0x1326 PUSH2 0x1EBE PUSH2 0x1ED7 SWAP4 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP8 PUSH2 0x12EE JUMP JUMPDEST DUP4 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1C73 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 PUSH1 0x40 SWAP6 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1F06 PUSH2 0x1C41 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP5 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1E0F JUMP JUMPDEST POP POP SWAP1 SWAP2 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP4 SWAP5 POP PUSH1 0x40 SWAP3 POP PUSH2 0x1E0F JUMP JUMPDEST POP DUP3 ISZERO ISZERO PUSH2 0x1DDB JUMP JUMPDEST PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x1FBD JUMPI PUSH1 0x4 PUSH2 0x1F79 PUSH2 0x1566 JUMP JUMPDEST ADD DUP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD DUP1 SLOAD NUMBER GT ISZERO PUSH2 0x1FD3 JUMPI NUMBER SWAP1 SSTORE DUP1 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH0 DUP1 SWAP2 PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x1EFC6B41 PUSH1 0xE1 SHL DUP4 MSTORE GAS CALL DUP1 ISZERO PUSH2 0x18EC JUMPI PUSH2 0x1FC3 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1FCD SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x1FBD JUMP JUMPDEST POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x1FE2 PUSH2 0x1566 JUMP JUMPDEST PUSH2 0x1FEA PUSH2 0x236C JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x201D JUMPI PUSH1 0x3 ADD SLOAD ISZERO PUSH2 0x2015 JUMPI PUSH2 0x2012 NUMBER PUSH2 0x1645 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2012 PUSH2 0x2806 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x202C PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x203B DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP7 PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL SWAP2 SWAP1 SWAP2 SHR AND SWAP4 SWAP1 DUP6 DUP6 EQ PUSH2 0x218F JUMPI DUP4 SLOAD PUSH1 0x1 JUMPDEST DUP2 DUP2 LT PUSH2 0x2152 JUMPI POP POP PUSH2 0x2073 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x2149 JUMPI PUSH1 0x4 PUSH2 0x20AC SWAP2 PUSH2 0x2087 DUP7 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x2091 DUP5 PUSH2 0x1F60 JUMP JUMPDEST POP ADD SWAP2 DUP6 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH2 0x1326 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP5 PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP4 MSTORE SWAP2 KECCAK256 SWAP1 DUP1 DUP3 SUB PUSH2 0x212B JUMPI JUMPDEST POP POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 PUSH1 0x40 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH31 0xF06471E88E0BC1DB6B6126EFDB09F80B597E6DDC145FF0DCABD12AFAB4EC57 PUSH0 DUP1 LOG3 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SWAP3 SLOAD DUP5 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 DUP6 ADD SSTORE ADD SLOAD SWAP2 ADD SSTORE PUSH0 DUP1 PUSH2 0x20D2 JUMP JUMPDEST POP POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST DUP8 PUSH2 0x215D DUP3 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x217C JUMPI PUSH1 0x1 ADD PUSH2 0x2062 JUMP JUMPDEST DUP8 PUSH4 0xF158185D PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x222D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CC2 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1CC2 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2374 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SWAP1 DUP2 SLOAD NUMBER DUP2 EQ PUSH2 0x254E JUMPI PUSH2 0x238C DUP2 NUMBER PUSH2 0x127C JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x1289 JUMPI PUSH1 0x3 DUP4 ADD DUP1 SLOAD SWAP1 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND DUP1 ISZERO PUSH2 0x2545 JUMPI JUMPDEST PUSH2 0x24EA JUMPI JUMPDEST POP POP NUMBER SWAP1 SSTORE PUSH1 0x6 DUP3 ADD SLOAD DUP1 PUSH2 0x23D3 JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0x7 DUP5 ADD SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x116D JUMPI PUSH1 0x2 DUP2 SUB PUSH2 0x2496 JUMPI POP POP PUSH1 0x5 DUP3 ADD DUP1 SLOAD SWAP4 PUSH1 0x4 SWAP1 SWAP4 ADD SWAP3 SWAP1 PUSH0 JUMPDEST DUP6 DUP2 LT PUSH2 0x2415 JUMPI POP POP POP POP POP POP JUMPDEST PUSH0 DUP1 DUP1 DUP1 PUSH2 0x23CD JUMP JUMPDEST DUP1 PUSH2 0x2422 PUSH1 0x1 SWAP3 DUP5 PUSH2 0x12EE JUMP JUMPDEST DUP4 DUP1 PUSH1 0xA0 SHL SUB SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND DUP3 DUP1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 MSTORE DUP7 PUSH1 0x20 MSTORE DUP6 DUP4 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD DUP7 DUP2 PUSH2 0x2457 JUMPI JUMPDEST POP POP POP POP ADD PUSH2 0x23FE JUMP JUMPDEST PUSH2 0x2460 SWAP2 PUSH2 0x1632 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH32 0xA34DB09D4126DD8DCD1D29F3DF65C01DCAC405127546E380ADD77FEDCA459BA7 PUSH1 0x20 NUMBER SWAP5 LOG4 PUSH0 DUP6 DUP2 DUP7 PUSH2 0x244D JUMP JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 POP SWAP1 PUSH1 0x1 EQ PUSH2 0x24AC JUMPI JUMPDEST POP POP POP PUSH2 0x240C JUMP JUMPDEST PUSH2 0x24B5 SWAP2 PUSH2 0x1632 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xCEF44CE1A1FC7CA1F3078DAF79D3B60646D0E751BC72A69BFF12F66C4AEF3B8D PUSH1 0x20 NUMBER SWAP4 LOG3 PUSH0 DUP1 DUP1 PUSH2 0x24A4 JUMP JUMPDEST PUSH2 0x2501 PUSH2 0x24FB DUP8 PUSH1 0x6 DUP9 ADD SLOAD PUSH2 0x1632 JUMP JUMPDEST DUP4 PUSH2 0x12BB JUMP JUMPDEST DUP1 SWAP2 SSTORE DUP1 DUP3 SUB ISZERO PUSH2 0x23BD JUMPI PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH32 0x539CE444A515B8AA8769802297761FBEC80B5B543C617714BF5E0611CF669DB PUSH1 0x40 NUMBER SWAP4 LOG3 PUSH0 DUP1 PUSH2 0x23BD JUMP JUMPDEST POP DUP2 ISZERO ISZERO PUSH2 0x23B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST SWAP2 SWAP1 SWAP2 PUSH2 0x255E PUSH2 0x1566 JUMP JUMPDEST SWAP3 DUP1 ISZERO DUP1 DUP1 ISZERO PUSH2 0x26B2 JUMPI JUMPDEST PUSH2 0x26AB JUMPI PUSH1 0x1 DUP6 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x1289 JUMPI PUSH1 0x4 DUP7 ADD SWAP7 SWAP6 PUSH1 0x5 ADD PUSH1 0x1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x26A0 JUMPI PUSH2 0x259D DUP2 DUP4 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP1 PUSH2 0x25D4 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x258A JUMP JUMPDEST PUSH2 0x25DE SWAP1 DUP7 PUSH2 0x1632 JUMP JUMPDEST SWAP1 PUSH2 0x268C JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP8 SWAP1 DIV DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x18EC JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x267C JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP5 PUSH0 PUSH2 0x25C8 JUMP JUMPDEST PUSH0 PUSH2 0x2686 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x266D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP1 POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x2569 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 DUP3 ISZERO PUSH2 0x27F7 JUMPI PUSH2 0x26D3 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD PUSH2 0x26FD PUSH2 0x26E3 DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 EQ SWAP2 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x27E5 JUMPI POP PUSH1 0x4 SWAP1 DUP5 PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP3 DUP3 DUP3 SLOAD EQ SWAP2 DUP3 PUSH2 0x27D7 JUMPI JUMPDEST POP POP PUSH2 0x1556 JUMPI ISZERO SWAP1 DUP2 ISZERO SWAP2 PUSH2 0x27CD JUMPI JUMPDEST POP PUSH2 0x274A JUMPI POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP6 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x18EC JUMPI PUSH0 SWAP2 PUSH2 0x2792 JUMPI JUMPDEST POP PUSH2 0x1FBD JUMPI PUSH4 0xA5FE8615 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x27C5 JUMPI JUMPDEST DUP2 PUSH2 0x27AD PUSH1 0x20 SWAP4 DUP4 PUSH2 0x123C JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x219 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x219 JUMPI PUSH0 PUSH2 0x277B JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27A0 JUMP JUMPDEST SWAP1 POP ISZERO ISZERO PUSH0 PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 ADD SLOAD EQ SWAP1 POP DUP3 PUSH0 PUSH2 0x272F JUMP JUMPDEST PUSH4 0xFDA6C187 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x22A4EC7B PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x280E PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x2821 DUP3 NUMBER PUSH2 0x127C JUMP JUMPDEST SWAP1 DUP2 ISZERO PUSH2 0x2959 JUMPI PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x1289 JUMPI PUSH0 SWAP5 SWAP4 PUSH1 0x4 PUSH1 0x5 DUP4 ADD SWAP3 ADD SWAP6 JUMPDEST DUP3 SLOAD DUP2 LT ISZERO PUSH2 0x294C JUMPI PUSH2 0x2853 DUP2 DUP5 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2943 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 MSTORE DUP8 PUSH1 0x20 MSTORE DUP5 PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 PUSH2 0x2894 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP JUMPDEST ADD PUSH2 0x2840 JUMP JUMPDEST SWAP1 PUSH2 0x289E SWAP2 PUSH2 0x1632 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x18EC JUMPI PUSH1 0x1 SWAP5 DUP10 SWAP3 PUSH2 0x2933 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 NUMBER SWAP5 LOG4 DUP5 PUSH0 PUSH2 0x2887 JUMP JUMPDEST PUSH0 PUSH2 0x293D SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x2912 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP PUSH2 0x288E JUMP JUMPDEST POP SWAP5 POP POP POP POP NUMBER SWAP1 SSTORE NUMBER SWAP1 JUMP JUMPDEST POP SWAP1 SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x1556 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x64B JUMPI PUSH2 0x29B0 PUSH2 0x299A DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x12EE JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x2A6C JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x1289 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x1289 JUMPI DUP2 DUP2 SUB PUSH2 0x2A37 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x1C73 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x2A18 DUP3 DUP3 PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2A57 PUSH2 0x2A47 PUSH2 0x299A SWAP4 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x29FF JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x2A90 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8030C56D855D8DF534C916B78EAC3522E5FAFD59F BASEFEE PUSH26 0x9C4A97D42E80F6E08989607935BD0AE54BC31F548C14DBA4D37C TLOAD PUSH5 0xB3F8CA900C 0xB4 PUSH9 0xFB8ABD54D5894F5502 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46D9B779B17422D0DF9222301 DUP12 ORIGIN 0xB4 DATALOADN 0xFA46 RJUMP 0x7172 RETURNDATASIZE PUSH9 0x17E2486D003BECC55F STOP SHL 0xD3 CREATE 0xD2 CALL STOP BYTE DUP6 PUSH14 0x81215CEB86C548BDBC3BF52480A0 DUP10 PUSH25 0xF8C3EA6E2BD421F0C57E16840DF040F15088DC2F81FE391C39 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR DUP13 ADD 0xBF 0x4F DUP3 PUSH26 0xDF7AF8F2E90EEA4858F9D7498C6312CC7CC9542590FF22A1FB64 PUSH20 0x6F6C63430008210033F0C57E16840DF040F15088 0xDC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 ","sourceMap":"9256:54785:44:-:0;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;4199:24:45;;9256:54785:44;;4267:37:45;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;7894:76:23;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;7983:34:23;7979:146;;-1:-1:-1;9256:54785:44;;;;;;;;4267:37:45;9256:54785:44;;;;;;;;;;;;;;;;;;;;;7979:146:23;-1:-1:-1;;;;;;9256:54785:44;-1:-1:-1;;;;;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;8085:29:23;;9256:54785:44;;8085:29:23;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:23;;-1:-1:-1;7936:23:23;9256:54785:44;;;;-1:-1:-1;9256:54785:44;;-1:-1:-1;9256:54785:44;;-1:-1:-1;9256:54785:44;;;;;;-1:-1:-1;9256:54785:44;;;;;-1:-1:-1;9256:54785:44"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":4360,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4338,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_address_uint256":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_address_dyn":{"entryPoint":4382,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_enum_SelfMintingEventMode":{"entryPoint":4448,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_Allocation":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_and_zero_memory_struct_struct_Allocation":{"entryPoint":4702,"id":null,"parameterSlots":0,"returnSlots":1},"array_push_from_address_to_array_address_dyn_storage_ptr":{"entryPoint":4867,"id":null,"parameterSlots":2,"returnSlots":0},"checked_add_uint256":{"entryPoint":4795,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_uint256":{"entryPoint":5682,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_uint256":{"entryPoint":4732,"id":null,"parameterSlots":2,"returnSlots":1},"constant_ISSUANCE_ALLOCATOR_STORAGE_LOCATION":{"entryPoint":5478,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":4668,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_18276":{"entryPoint":4612,"id":null,"parameterSlots":1,"returnSlots":0},"finalize_allocation_18287":{"entryPoint":4640,"id":null,"parameterSlots":1,"returnSlots":0},"fun__checkRole":{"entryPoint":4940,"id":2232,"parameterSlots":0,"returnSlots":0},"fun__grantRole":{"entryPoint":8754,"id":2418,"parameterSlots":2,"returnSlots":1},"fun__revokeRole":{"entryPoint":5616,"id":2690,"parameterSlots":2,"returnSlots":1},"fun__setTargetAllocation":{"entryPoint":7368,"id":13450,"parameterSlots":4,"returnSlots":1},"fun_add":{"entryPoint":10592,"id":8455,"parameterSlots":2,"returnSlots":1},"fun_advanceSelfMintingBlock":{"entryPoint":9068,"id":12230,"parameterSlots":0,"returnSlots":0},"fun_checkInitializing":{"entryPoint":10868,"id":2867,"parameterSlots":0,"returnSlots":0},"fun_checkRole":{"entryPoint":5013,"id":2232,"parameterSlots":0,"returnSlots":0},"fun_checkRole_2232":{"entryPoint":5105,"id":2232,"parameterSlots":1,"returnSlots":0},"fun_distributeIssuance":{"entryPoint":8154,"id":12264,"parameterSlots":0,"returnSlots":1},"fun_distributePendingIssuance":{"entryPoint":5701,"id":12553,"parameterSlots":1,"returnSlots":1},"fun_distributePendingProportionally":{"entryPoint":9555,"id":12827,"parameterSlots":3,"returnSlots":0},"fun_getRoleAdmin":{"entryPoint":4765,"id":2274,"parameterSlots":1,"returnSlots":1},"fun_grantRole":{"entryPoint":8602,"id":2418,"parameterSlots":1,"returnSlots":1},"fun_grantRole_2650":{"entryPoint":5546,"id":2650,"parameterSlots":2,"returnSlots":1},"fun_nonReentrantBefore":{"entryPoint":5175,"id":4497,"parameterSlots":0,"returnSlots":0},"fun_notifyTarget":{"entryPoint":8032,"id":13076,"parameterSlots":1,"returnSlots":1},"fun_performNormalDistribution":{"entryPoint":10246,"id":12374,"parameterSlots":0,"returnSlots":1},"fun_remove":{"entryPoint":10691,"id":8539,"parameterSlots":2,"returnSlots":1},"fun_revokeRole":{"entryPoint":8912,"id":2464,"parameterSlots":2,"returnSlots":1},"fun_setDefaultTarget":{"entryPoint":8228,"id":13387,"parameterSlots":2,"returnSlots":1},"fun_setIssuancePerBlock":{"entryPoint":5228,"id":12964,"parameterSlots":2,"returnSlots":1},"fun_setSelfMintingEventMode_inner":{"entryPoint":4481,"id":null,"parameterSlots":1,"returnSlots":1},"fun_setTargetAllocation":{"entryPoint":6680,"id":13450,"parameterSlots":3,"returnSlots":1},"fun_validateAllocationChange":{"entryPoint":9914,"id":13540,"parameterSlots":3,"returnSlots":1},"storage_array_index_access_address_dyn":{"entryPoint":4846,"id":null,"parameterSlots":2,"returnSlots":2},"storage_array_index_access_address_dyn_":{"entryPoint":4808,"id":null,"parameterSlots":1,"returnSlots":2},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_address_to_address":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":0},"update_storage_value_address_to_address_18415":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{"14015":[{"length":32,"start":6214},{"length":32,"start":6465},{"length":32,"start":9701},{"length":32,"start":10400}]},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611009575080631156bdc114610fda57806313a7855d14610fa057806315d3b5d814610f27578063248a9ca314610f095780632f2ff15d14610ed85780633067cb4c14610e3057806332bc934c14610e1357806336568abe14610dcf578063389ed26714610da85780633af5b07314610d7d5780633f4ba83a14610cff578063443990fa14610cbd5780634887693c14610c8a57806348c3c62e14610c0457806349bdfcb014610bc75780634a1293b714610ba157806352c0e18c14610b5b5780635c975abb14610b2d57806363fe3b5614610ac4578063647b368214610a7e578063697cf32214610a4957806379d5fc5414610a265780637c92330b146109d65780638456cb591461095557806384c48422146108f557806387ee921c146108cc5780639010d07c1461087b57806391d148541461082657806393c911a8146107f8578063a217fddf146107de578063a3246ad31461075e578063c2cb354414610716578063c4d66de8146103a4578063c627b7a414610373578063ca15c8731461033d578063ccc5749014610316578063d012a15b146102c5578063d547741f1461028d578063ee56977e1461021d5763f5b541a6146101df575f80fd5b34610219575f3660031901126102195760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5f80fd5b34610219575f3660031901126102195761023561125e565b506060610240611566565b60018101549060036002820154910154906040519261025e84611220565b83526020830152604082015261028b60405180926040809180518452602081015160208501520151910152565bf35b34610219576040366003190112610219576102c36004356102ac6110f2565b906102be6102b98261129d565b6113f1565b6115f0565b005b346102195760403660031901126102195760206102fc6102e3611108565b6102eb61134c565b6102f3611437565b60243590612024565b5f5f516020612ba05f395f51905f525d6040519015158152f35b34610219575f3660031901126102195760206040515f516020612b205f395f51905f528152f35b34610219576020366003190112610219576004355f525f516020612ac05f395f51905f52602052602060405f2054604051908152f35b346102195760403660031901126102195761038c61134c565b610394611437565b60206102fc60243560043561146c565b34610219576020366003190112610219576103bd611108565b5f516020612be05f395f51905f52549060ff8260401c16159167ffffffffffffffff81168015908161070e575b6001149081610704575b1590816106fb575b506106ec5767ffffffffffffffff1981166001175f516020612be05f395f51905f5255826106c0575b5061042e612a74565b610436612a74565b6001600160a01b0381169081156106b1575f516020612b205f395f51905f525f8181525f516020612b405f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee80480549083905561059c93929182905f516020612aa05f395f51905f529080a45f516020612b805f395f51905f525f8181525f516020612b405f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f516020612b205f395f51905f5291829055909290915f516020612aa05f395f51905f529080a47f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9295f8181525f516020612b405f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f516020612b205f395f51905f5291829055909290915f516020612aa05f395f51905f529080a461219a565b61065f575b506105aa611566565b600581018054600160401b81101561064b576105cb916001820181556112ee565b81549060018060a01b039060031b1b1916905560078101600260ff198254161790556001439101556105f957005b60ff60401b195f516020612be05f395f51905f5254165f516020612be05f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b634e487b7160e01b5f52604160045260245ffd5b5f516020612b205f395f51905f525f525f516020612ac05f395f51905f526020526106aa907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e612960565b50816105a1565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f516020612be05f395f51905f525582610425565b63f92ee8a960e01b5f5260045ffd5b905015846103fc565b303b1591506103f4565b8491506103ea565b346102195760803660031901126102195760206102fc610734611108565b61073c61134c565b610744611437565b6064359060443590602435906001600160a01b0316611cc8565b34610219576020366003190112610219576004355f525f516020612ac05f395f51905f5260205260405f206040519081602082549182815201915f5260205f20905f5b8181106107c8576107c4856107b88187038261123c565b6040519182918261111e565b0390f35b82548452602090930192600192830192016107a1565b34610219575f3660031901126102195760206040515f8152f35b34610219575f36600319011261021957602060ff6007610816611566565b01541661028b6040518092611160565b346102195760403660031901126102195761083f6110f2565b6004355f525f516020612b405f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610219576040366003190112610219576004355f525f516020612ac05f395f51905f5260205260206108b360243560405f206112ee565b905460405160039290921b1c6001600160a01b03168152f35b346102195760203660031901126102195760206108b360043560056108ef611566565b016112ee565b346102195760203660031901126102195761090e611108565b61091661125e565b506004610921611566565b019060018060a01b03165f52602052606060405f206001815491015461094781836112bb565b916040519261025e84611220565b34610219575f3660031901126102195761096d611395565b5f516020612b605f395f51905f525460ff81166109c75760019060ff1916175f516020612b605f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63d93c066560e01b5f5260045ffd5b346102195760403660031901126102195760206109f1611108565b602435906109fd61134c565b6004610a07611566565b019060018060a01b03165f52825280600260405f200155604051908152f35b34610219575f366003190112610219576020610a40611566565b54604051908152f35b346102195760203660031901126102195760206102fc610a67611108565b610a6f61134c565b610a77611437565b4390612024565b346102195760603660031901126102195760206102fc610a9c611108565b610aa461134c565b610aac611437565b439060443590602435906001600160a01b0316611cc8565b34610219575f366003190112610219576005610ade611566565b016040519081602082549182815201915f5260205f20905f5b818110610b0e576107c4856107b88187038261123c565b82546001600160a01b0316845260209093019260019283019201610af7565b34610219575f36600319011261021957602060ff5f516020612b605f395f51905f5254166040519015158152f35b3461021957602036600319011261021957610b7461134c565b610b7c611437565b6020610b89600435611645565b5f5f516020612ba05f395f51905f525d604051908152f35b34610219575f3660031901126102195760206005610bbd611566565b0154604051908152f35b34610219575f366003190112610219576001610be1611566565b01544303610bf5576020435b604051908152f35b6020610bff611fda565b610bed565b3461021957602036600319011261021957610c1d611108565b610c2561125e565b506004610c30611566565b019060018060a01b03165f52602052606060405f20600260405191610c5483611220565b80548352600181015460208401520154604082015261028b60405180926040809180518452602081015160208501520151910152565b346102195760203660031901126102195760206102fc610ca8611108565b610cb061134c565b610cb8611437565b611f60565b346102195760403660031901126102195760206102fc610cdb611108565b610ce361134c565b610ceb611437565b4390602435906001600160a01b0316611a18565b34610219575f36600319011261021957610d17611395565b5f516020612b605f395f51905f525460ff811615610d6e5760ff19165f516020612b605f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b34610219575f36600319011261021957610d9561134c565b610d9d611437565b6020610b8943611645565b34610219575f3660031901126102195760206040515f516020612b805f395f51905f528152f35b3461021957604036600319011261021957610de86110f2565b336001600160a01b03821603610e04576102c3906004356115f0565b63334bd91960e11b5f5260045ffd5b34610219575f366003190112610219576020604051620f42408152f35b34610219576020366003190112610219576080610e4b611108565b5f6060604051610e5a81611204565b8281528260208201528260408201520152610e73611566565b9060018060a01b03165f526004810160205260405f208054916002600180830154930154910154916060604051610ea981611204565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b34610219576040366003190112610219576102c3600435610ef76110f2565b90610f046102b98261129d565b6115aa565b34610219576020366003190112610219576020610bed60043561129d565b34610219575f366003190112610219576060610f4161125e565b610f7a610f4c611566565b6006610f6882545f80526004840160205260405f20549061127c565b9182855201549081604085015261127c565b602082015261028b60405180926040809180518452602081015160208501520151910152565b3461021957602036600319011261021957600435600381101561021957610fd0602091610fcb61134c565b611181565b6040519015158152f35b3461021957602036600319011261021957610ff361134c565b610ffb611437565b60206102fc4360043561146c565b34610219576020366003190112610219576004359063ffffffff60e01b821680920361021957602091631e768dff60e21b81149081156110e1575b81156110d0575b81156110bf575b8115611060575b5015158152f35b631cf1473b60e31b81149150811561107a575b5083611059565b635a05180f60e01b811491508115611094575b5083611073565b637965db0b60e01b8114915081156110ae575b508361108d565b6301ffc9a760e01b149050836110a7565b632461e31760e11b81149150611052565b63a896602d60e01b8114915061104b565b6350d8541d60e01b81149150611044565b602435906001600160a01b038216820361021957565b600435906001600160a01b038216820361021957565b60206040818301928281528451809452019201905f5b8181106111415750505090565b82516001600160a01b0316845260209384019390920191600101611134565b90600382101561116d5752565b634e487b7160e01b5f52602160045260245ffd5b600761118b611566565b019060ff825416600381101561116d57600382101561116d578082146111fc576111f66040927f3f59746e46bfb9af931035055d53b82d1b70968466065162b7dbf8e998aee6299460ff1981541660ff83161790556111ec84518094611160565b6020830190611160565ba1600190565b505050600190565b6080810190811067ffffffffffffffff82111761064b57604052565b6060810190811067ffffffffffffffff82111761064b57604052565b90601f8019910116810190811067ffffffffffffffff82111761064b57604052565b6040519061126b82611220565b5f6040838281528260208201520152565b9190820391821161128957565b634e487b7160e01b5f52601160045260245ffd5b5f525f516020612b405f395f51905f52602052600160405f20015490565b9190820180921161128957565b8054156112da575f5260205f20905f90565b634e487b7160e01b5f52603260045260245ffd5b80548210156112da575f5260205f2001905f90565b80549190600160401b83101561064b578261132691600161134a950181556112ee565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b565b335f9081525f516020612ae05f395f51905f52602052604090205460ff161561137157565b63e2517d3f60e01b5f52336004525f516020612b205f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff16156113cd57565b63e2517d3f60e01b5f52336004525f516020612b805f395f51905f5260245260445ffd5b5f8181525f516020612b405f395f51905f526020908152604080832033845290915290205460ff16156114215750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f516020612ba05f395f51905f525c61145d5760015f516020612ba05f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b611474611566565b80549283831461155d57611486611fda565b10611556576114bb600582016114b561149e826112c8565b905460039190911b1c6001600160a01b0316611f60565b506112c8565b905460039190911b1c6001600160a01b03165f908152600482016020526040902080546114e881856112bb565b851161153c5792849281926115297f2925be3e6d4b2cbcec6c06d5060fb3b53f160410555e45ee0a1f6dc7ae9b24c097611524856040996112bb565b61127c565b90555582519182526020820152a1600190565b8385632c421f2b60e21b5f5260045260245260445260645ffd5b5050505f90565b50505050600190565b604051602081017f109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd481526020825261159f60408361123c565b9051902060ff191690565b6115b48282612232565b91826115bf57505090565b5f9182525f516020612ac05f395f51905f5260205260409091206115ec916001600160a01b031690612960565b5090565b6115fa82826122d0565b918261160557505090565b5f9182525f516020612ac05f395f51905f5260205260409091206115ec916001600160a01b0316906129c3565b8181029291811591840414171561128957565b61164d61236c565b611655611566565b600181019081548381111580611a0e575b156119f457611675908461127c565b9182156119ee578382549161168a8584611632565b926003850154948486105f146119e7576116a4868661127c565b915b8261174a575b505050556116b8611566565b9043850361172c575f935b8484036116d6575b505060039150015590565b6116e0908661127c565b60018101809111611289577f1a45018bdab6039c806fac73d617b3bc5c6a2a0f22f6f90d2ca202b083087f99606060039588946040519182528860208301526040820152a35f806116cb565b828110156117445761173e818461127c565b936116c3565b5f61173e565b6117969293945061178e90611761600584016112c8565b905460039190911b1c6001600160a01b03165f90815260048401602052604090206006909301549061127c565b90549061127c565b906117a18683611632565b808210156117bf5750868093926117b792612553565b5f80806116ac565b9695939294909791506117d0611566565b9260018401549560018701809711611289576001999860046005870196019a5b86548110156118f75761180381886112ee565b905460039190911b1c6001600160a01b03165f81815260208e9052604090205490919089908061183a575b505060019150016117f0565b9061184491611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b15610219576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af19182156118ec575f516020612b005f395f51905f5260208f94938f94976001986118dc575b50604051908152a4885f61182e565b5f6118e69161123c565b5f6118cd565b6040513d5f823e3d90fd5b5061190e91949a508899989592969897939761127c565b908161191d575b5050506117b7565b611926906112c8565b905460039190911b1c6001600160a01b0316918215611915577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031694509091843b15610219576040516340c10f1960e01b81526001600160a01b038216600482015260248101849052945f908690604490829084905af19485156118ec5760208a96945f516020612b005f395f51905f529288966119d7575b50604051908152a45f8080611915565b5f6119e19161123c565b5f6119c7565b5f916116a6565b50505090565b8363a0d2b9db60e01b5f526004526024524360445260645ffd5b5043841115611666565b9091611a255f84846126ba565b156111fc57611a32611fda565b10611cc257611a4081611f60565b50611a5761149e6005611a51611566565b016112c8565b50611a60611566565b600481019060018060a01b0383165f528160205260405f2091611a85600583016112c8565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611ac491600191611ab9916112bb565b9401938454906112bb565b808611611cac5791600691611adc87611aea9561127c565b90550191825490549061127c565b9055611af4611566565b6001600160a01b0382165f9081526004820160205260409020908315801590611ca5575b15611b8357915f6001835f516020612bc05f395f51905f529584604096541580611b78575b611b65575b505086815501555b81519384525f60208501526001600160a01b031692a2600190565b6005611b719201611303565b5f84611b42565b508383015415611b3d565b505090611b8e611566565b916001600160a01b03811690600584019060015b825480821015611c875784611bb783866112ee565b905460039190911b1c6001600160a01b031614611bd75750600101611ba2565b905f96929394959619820191821161128957611326611bf9611c1293876112ee565b905460039190911b1c6001600160a01b031691866112ee565b8254908115611c73575f516020612bc05f395f51905f52946040946004935f190190611c56611c4183836112ee565b81549060018060a01b039060031b1b19169055565b555f52016020525f60028382208281558260018201550155611b4a565b634e487b7160e01b5f52603160045260245ffd5b505090505f516020612bc05f395f51905f5292935060409150611b4a565b505f611b18565b8563162930e360e11b5f5260045260245260445ffd5b50505f90565b92919091611cd78284866126ba565b1561155d57611ce4611fda565b1061155657611cf283611f60565b50611d0361149e6005611a51611566565b50611d0c611566565b600481019060018060a01b0385165f528160205260405f2091611d31600583016112c8565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611d6591600191611ab9916112bb565b80611d7086886112bb565b11611d7b86886112bb565b90611f4b57506006611dad938693611d9a856115248b611da89761127c565b90550193845490549061127c565b6112bb565b9055611db7611566565b6001600160a01b0384165f9081526004820160205260409020908315801590611f42575b15611e47579180600183604095885f516020612bc05f395f51905f52989996541580611e3c575b611e29575b505087815501555b825194855260208501526001600160a01b031692a2600190565b6005611e359201611303565b5f85611e07565b508383015415611e02565b505091611e52611566565b926001600160a01b03821691600585019160015b835480821015611f235785611e7b83876112ee565b905460039190911b1c6001600160a01b031614611e9b5750600101611e66565b905f9792939495969719820191821161128957611326611ebe611ed793886112ee565b905460039190911b1c6001600160a01b031691876112ee565b8354908115611c73575f516020612bc05f395f51905f52956040956004935f190190611f06611c4183836112ee565b555f52016020525f60028482208281558260018201550155611e0f565b50509091505f516020612bc05f395f51905f5293945060409250611e0f565b50821515611ddb565b63162930e360e11b5f5260045260245260445ffd5b6001600160a01b03168015611fbd576004611f79611566565b01815f52602052600260405f20018054431115611fd357439055803b15610219575f8091600460405180948193631efc6b4160e11b83525af180156118ec57611fc3575b50600190565b5f611fcd9161123c565b5f611fbd565b5050600190565b611fe2611566565b611fea61236c565b60ff5f516020612b605f395f51905f52541661201d5760030154156120155761201243611645565b90565b612012612806565b6001015490565b61202c611566565b90600582019061203b826112c8565b90546001600160a01b038381169660039390931b9190911c16939085851461218f57835460015b818110612152575050612073611fda565b106121495760046120ac9161208786611f60565b5061209184611f60565b500191855f5282602052611326600260405f200154946112c8565b6001600160a01b0383165f9081526020829052604080822086835291209080820361212b575b505060018060a01b0383165f52806020525f6002604082208281558260018201550155835f52602052600260405f2001557ef06471e88e0bc1db6b6126efdb09f80b597e6ddc145ff0dcabd12afab4ec575f80a3600190565b60028181925484556001810154600185015501549101555f806120d2565b50505050505f90565b8761215d82886112ee565b905460039190911b1c6001600160a01b03161461217c57600101612062565b8763f158185d60e01b5f5260045260245ffd5b505050505050600190565b6001600160a01b0381165f9081525f516020612ae05f395f51905f52602052604090205460ff1661222d576001600160a01b03165f8181525f516020612ae05f395f51905f5260205260408120805460ff191660011790553391905f516020612b205f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611cc2575f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611cc2575f8181525f516020612b405f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b612374611566565b6002810190815443811461254e5761238c814361127c565b9260018201809211611289576003830180549060ff5f516020612b605f395f51905f5254168015612545575b6124ea575b50504390556006820154806123d3575b50505050565b60ff600784015416600381101561116d576002810361249657505060058201805493600490930192905f5b858110612415575050505050505b5f8080806123cd565b80612422600192846112ee565b838060a01b0391549060031b1c16828060a01b0381165f5286602052858360405f2001548681612457575b50505050016123fe565b61246091611632565b916040519283527fa34db09d4126dd8dcd1d29f3df65c01dcac405127546e380add77fedca459ba760204394a45f85818661244d565b9193909250906001146124ac575b50505061240c565b6124b591611632565b906040519182527fcef44ce1a1fc7ca1f3078daf79d3b60646d0e751bc72a69bff12f66c4aef3b8d60204393a35f80806124a4565b6125016124fb876006880154611632565b836112bb565b809155808203156123bd576040519182526020820152827f0539ce444a515b8aa8769802297761fbec80b5b543c617714bf5e0611cf669db60404393a35f806123bd565b508115156123b8565b505050565b91909161255e611566565b9280158080156126b2575b6126ab57600185015492600184018094116112895760048601969560050160015b81548110156126a05761259d81836112ee565b905460039190911b1c6001600160a01b03165f81815260208b905260409020549091908590806125d4575b5050600191500161258a565b6125de9086611632565b9061268c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290879004833b15610219576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af19182156118ec575f516020612b005f395f51905f5260208b936001978e9661267c575b50604051908152a4845f6125c8565b5f6126869161123c565b5f61266d565b634e487b7160e01b5f52601260045260245ffd5b505050505050509050565b5050505050565b508215612569565b6001600160a01b0316919082156127f7576126d3611566565b600581016126fd6126e3826112c8565b905460039190911b1c6001600160a01b03168614916112c8565b905460039190911b1c6001600160a01b0316906127e55750600490845f520160205260405f20828282541491826127d7575b50506115565715908115916127cd575b5061274a5750600190565b6040516301ffc9a760e01b815263aee4dc4360e01b6004820152602081602481855afa9081156118ec575f91612792575b50611fbd5763a5fe861560e01b5f5260045260245ffd5b90506020813d6020116127c5575b816127ad6020938361123c565b8101031261021957518015158103610219575f61277b565b3d91506127a0565b905015155f61273f565b60010154149050825f61272f565b63fda6c18760e01b5f5260045260245ffd5b6322a4ec7b60e11b5f5260045ffd5b61280e611566565b906001820191825490612821824361127c565b9081156129595760018301809311611289575f94936004600583019201955b825481101561294c5761285381846112ee565b905460039190911b1c6001600160a01b03169081156129435760018060a01b0382165f52876020528460405f205480612894575b5050600191505b01612840565b9061289e91611632565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692833b15610219576040516340c10f1960e01b81526001600160a01b038216600482015260248101839052935f908590604490829084905af19081156118ec576001948992612933575b506040519283525f516020612b005f395f51905f5260204394a4845f612887565b5f61293d9161123c565b5f612912565b6001915061288e565b5094505050504390554390565b5090925050565b6001810190825f528160205260405f2054155f14611556578054600160401b81101561064b576129b061299a8260018794018555846112ee565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b906001820191815f528260205260405f20548015155f14612a6c575f1981018181116112895782545f1981019190821161128957818103612a37575b50505080548015611c73575f190190612a1882826112ee565b8154905f199060031b1b19169055555f526020525f6040812055600190565b612a57612a4761299a93866112ee565b90549060031b1c928392866112ee565b90555f528360205260405f20555f80806129ff565b505050505f90565b60ff5f516020612be05f395f51905f525460401c1615612a9057565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8030c56d855d8df534c916b78eac3522e5fafd59f48799c4a97d42e80f6e08989607935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5502dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001bd3f0d2f1001a856d81215ceb86c548bdbc3bf52480a08978f8c3ea6e2bd421f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201c8c01bf4f8279df7af8f2e90eea4858f9d7498c6312cc7cc9542590ff22a1fb64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x1009 JUMPI POP DUP1 PUSH4 0x1156BDC1 EQ PUSH2 0xFDA JUMPI DUP1 PUSH4 0x13A7855D EQ PUSH2 0xFA0 JUMPI DUP1 PUSH4 0x15D3B5D8 EQ PUSH2 0xF27 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF09 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xED8 JUMPI DUP1 PUSH4 0x3067CB4C EQ PUSH2 0xE30 JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0xE13 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xDCF JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0xDA8 JUMPI DUP1 PUSH4 0x3AF5B073 EQ PUSH2 0xD7D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xCFF JUMPI DUP1 PUSH4 0x443990FA EQ PUSH2 0xCBD JUMPI DUP1 PUSH4 0x4887693C EQ PUSH2 0xC8A JUMPI DUP1 PUSH4 0x48C3C62E EQ PUSH2 0xC04 JUMPI DUP1 PUSH4 0x49BDFCB0 EQ PUSH2 0xBC7 JUMPI DUP1 PUSH4 0x4A1293B7 EQ PUSH2 0xBA1 JUMPI DUP1 PUSH4 0x52C0E18C EQ PUSH2 0xB5B JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB2D JUMPI DUP1 PUSH4 0x63FE3B56 EQ PUSH2 0xAC4 JUMPI DUP1 PUSH4 0x647B3682 EQ PUSH2 0xA7E JUMPI DUP1 PUSH4 0x697CF322 EQ PUSH2 0xA49 JUMPI DUP1 PUSH4 0x79D5FC54 EQ PUSH2 0xA26 JUMPI DUP1 PUSH4 0x7C92330B EQ PUSH2 0x9D6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x955 JUMPI DUP1 PUSH4 0x84C48422 EQ PUSH2 0x8F5 JUMPI DUP1 PUSH4 0x87EE921C EQ PUSH2 0x8CC JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x87B JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x826 JUMPI DUP1 PUSH4 0x93C911A8 EQ PUSH2 0x7F8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x7DE JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xC2CB3544 EQ PUSH2 0x716 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xC627B7A4 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xD012A15B EQ PUSH2 0x2C5 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0xEE56977E EQ PUSH2 0x21D JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x1DF JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x235 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x60 PUSH2 0x240 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD SWAP2 ADD SLOAD SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x25E DUP5 PUSH2 0x1220 JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x2C3 PUSH1 0x4 CALLDATALOAD PUSH2 0x2AC PUSH2 0x10F2 JUMP JUMPDEST SWAP1 PUSH2 0x2BE PUSH2 0x2B9 DUP3 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x13F1 JUMP JUMPDEST PUSH2 0x15F0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0x2E3 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x2EB PUSH2 0x134C JUMP JUMPDEST PUSH2 0x2F3 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x2024 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x38C PUSH2 0x134C JUMP JUMPDEST PUSH2 0x394 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2FC PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x146C JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x3BD PUSH2 0x1108 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x70E JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x704 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x6FB JUMPI JUMPDEST POP PUSH2 0x6EC JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x6C0 JUMPI JUMPDEST POP PUSH2 0x42E PUSH2 0x2A74 JUMP JUMPDEST PUSH2 0x436 PUSH2 0x2A74 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x6B1 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x59C SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0x219A JUMP JUMPDEST PUSH2 0x65F JUMPI JUMPDEST POP PUSH2 0x5AA PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x64B JUMPI PUSH2 0x5CB SWAP2 PUSH1 0x1 DUP3 ADD DUP2 SSTORE PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE PUSH1 0x7 DUP2 ADD PUSH1 0x2 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH1 0x1 NUMBER SWAP2 ADD SSTORE PUSH2 0x5F9 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x6AA SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0x2960 JUMP JUMPDEST POP DUP2 PUSH2 0x5A1 JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x425 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x3FC JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x3F4 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x3EA JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0x734 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x73C PUSH2 0x134C JUMP JUMPDEST PUSH2 0x744 PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CC8 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x7C8 JUMPI PUSH2 0x7C4 DUP6 PUSH2 0x7B8 DUP2 DUP8 SUB DUP3 PUSH2 0x123C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x111E JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x7A1 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH1 0x7 PUSH2 0x816 PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD AND PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH2 0x1160 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x83F PUSH2 0x10F2 JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x8B3 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x8B3 PUSH1 0x4 CALLDATALOAD PUSH1 0x5 PUSH2 0x8EF PUSH2 0x1566 JUMP JUMPDEST ADD PUSH2 0x12EE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x90E PUSH2 0x1108 JUMP JUMPDEST PUSH2 0x916 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x921 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x1 DUP2 SLOAD SWAP2 ADD SLOAD PUSH2 0x947 DUP2 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x25E DUP5 PUSH2 0x1220 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x96D PUSH2 0x1395 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND PUSH2 0x9C7 JUMPI PUSH1 0x1 SWAP1 PUSH1 0xFF NOT AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x9F1 PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x9FD PUSH2 0x134C JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA07 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0xA40 PUSH2 0x1566 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xA67 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xA6F PUSH2 0x134C JUMP JUMPDEST PUSH2 0xA77 PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH2 0x2024 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xA9C PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xAA4 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xAAC PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1CC8 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x5 PUSH2 0xADE PUSH2 0x1566 JUMP JUMPDEST ADD PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0xB0E JUMPI PUSH2 0x7C4 DUP6 PUSH2 0x7B8 DUP2 DUP8 SUB DUP3 PUSH2 0x123C JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xAF7 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xB74 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xB7C PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xB89 PUSH1 0x4 CALLDATALOAD PUSH2 0x1645 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x5 PUSH2 0xBBD PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x1 PUSH2 0xBE1 PUSH2 0x1566 JUMP JUMPDEST ADD SLOAD NUMBER SUB PUSH2 0xBF5 JUMPI PUSH1 0x20 NUMBER JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x20 PUSH2 0xBFF PUSH2 0x1FDA JUMP JUMPDEST PUSH2 0xBED JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xC1D PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xC25 PUSH2 0x125E JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0xC30 PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x2 PUSH1 0x40 MLOAD SWAP2 PUSH2 0xC54 DUP4 PUSH2 0x1220 JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x20 DUP5 ADD MSTORE ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xCA8 PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xCB0 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xCB8 PUSH2 0x1437 JUMP JUMPDEST PUSH2 0x1F60 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0x2FC PUSH2 0xCDB PUSH2 0x1108 JUMP JUMPDEST PUSH2 0xCE3 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xCEB PUSH2 0x1437 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1A18 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xD17 PUSH2 0x1395 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xD6E JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xD95 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xD9D PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xB89 NUMBER PUSH2 0x1645 JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xDE8 PUSH2 0x10F2 JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0xE04 JUMPI PUSH2 0x2C3 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x15F0 JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x80 PUSH2 0xE4B PUSH2 0x1108 JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xE5A DUP2 PUSH2 0x1204 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE PUSH2 0xE73 PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x4 DUP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP1 SLOAD SWAP2 PUSH1 0x2 PUSH1 0x1 DUP1 DUP4 ADD SLOAD SWAP4 ADD SLOAD SWAP2 ADD SLOAD SWAP2 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xEA9 DUP2 PUSH2 0x1204 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 DUP4 MSTORE PUSH1 0x40 DUP2 ADD SWAP4 DUP5 MSTORE ADD SWAP3 DUP4 MSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE MLOAD PUSH1 0x20 DUP5 ADD MSTORE MLOAD PUSH1 0x40 DUP4 ADD MSTORE MLOAD PUSH1 0x60 DUP3 ADD MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0x2C3 PUSH1 0x4 CALLDATALOAD PUSH2 0xEF7 PUSH2 0x10F2 JUMP JUMPDEST SWAP1 PUSH2 0xF04 PUSH2 0x2B9 DUP3 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x20 PUSH2 0xBED PUSH1 0x4 CALLDATALOAD PUSH2 0x129D JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x60 PUSH2 0xF41 PUSH2 0x125E JUMP JUMPDEST PUSH2 0xF7A PUSH2 0xF4C PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x6 PUSH2 0xF68 DUP3 SLOAD PUSH0 DUP1 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP2 DUP3 DUP6 MSTORE ADD SLOAD SWAP1 DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x127C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x28B PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x219 JUMPI PUSH2 0xFD0 PUSH1 0x20 SWAP2 PUSH2 0xFCB PUSH2 0x134C JUMP JUMPDEST PUSH2 0x1181 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH2 0xFF3 PUSH2 0x134C JUMP JUMPDEST PUSH2 0xFFB PUSH2 0x1437 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2FC NUMBER PUSH1 0x4 CALLDATALOAD PUSH2 0x146C JUMP JUMPDEST CALLVALUE PUSH2 0x219 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x219 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x219 JUMPI PUSH1 0x20 SWAP2 PUSH4 0x1E768DFF PUSH1 0xE2 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x10E1 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10D0 JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10BF JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x1060 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x107A JUMPI JUMPDEST POP DUP4 PUSH2 0x1059 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x1094 JUMPI JUMPDEST POP DUP4 PUSH2 0x1073 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10AE JUMPI JUMPDEST POP DUP4 PUSH2 0x108D JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x10A7 JUMP JUMPDEST PUSH4 0x2461E317 PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x1052 JUMP JUMPDEST PUSH4 0xA896602D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x104B JUMP JUMPDEST PUSH4 0x50D8541D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x1044 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x219 JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x219 JUMPI JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 DUP2 DUP4 ADD SWAP3 DUP3 DUP2 MSTORE DUP5 MLOAD DUP1 SWAP5 MSTORE ADD SWAP3 ADD SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x1141 JUMPI POP POP POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1134 JUMP JUMPDEST SWAP1 PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x116D JUMPI MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x7 PUSH2 0x118B PUSH2 0x1566 JUMP JUMPDEST ADD SWAP1 PUSH1 0xFF DUP3 SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x116D JUMPI PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x116D JUMPI DUP1 DUP3 EQ PUSH2 0x11FC JUMPI PUSH2 0x11F6 PUSH1 0x40 SWAP3 PUSH32 0x3F59746E46BFB9AF931035055D53B82D1B70968466065162B7DBF8E998AEE629 SWAP5 PUSH1 0xFF NOT DUP2 SLOAD AND PUSH1 0xFF DUP4 AND OR SWAP1 SSTORE PUSH2 0x11EC DUP5 MLOAD DUP1 SWAP5 PUSH2 0x1160 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x1160 JUMP JUMPDEST LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x60 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x64B JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x126B DUP3 PUSH2 0x1220 JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x1289 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x1289 JUMPI JUMP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x12DA JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x12DA JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST DUP1 SLOAD SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL DUP4 LT ISZERO PUSH2 0x64B JUMPI DUP3 PUSH2 0x1326 SWAP2 PUSH1 0x1 PUSH2 0x134A SWAP6 ADD DUP2 SSTORE PUSH2 0x12EE JUMP JUMPDEST SWAP1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL DUP4 DUP2 SHL NOT SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP4 AND SWAP1 SWAP3 SHL OR SWAP1 SSTORE JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1371 JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13CD JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B80 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1421 JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TLOAD PUSH2 0x145D JUMPI PUSH1 0x1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BA0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE JUMP JUMPDEST PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x1474 PUSH2 0x1566 JUMP JUMPDEST DUP1 SLOAD SWAP3 DUP4 DUP4 EQ PUSH2 0x155D JUMPI PUSH2 0x1486 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1556 JUMPI PUSH2 0x14BB PUSH1 0x5 DUP3 ADD PUSH2 0x14B5 PUSH2 0x149E DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x14E8 DUP2 DUP6 PUSH2 0x12BB JUMP JUMPDEST DUP6 GT PUSH2 0x153C JUMPI SWAP3 DUP5 SWAP3 DUP2 SWAP3 PUSH2 0x1529 PUSH32 0x2925BE3E6D4B2CBCEC6C06D5060FB3B53F160410555E45EE0A1F6DC7AE9B24C0 SWAP8 PUSH2 0x1524 DUP6 PUSH1 0x40 SWAP10 PUSH2 0x12BB JUMP JUMPDEST PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP4 DUP6 PUSH4 0x2C421F2B PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH32 0x109CDEB08B6FCB52A0F8A35AF1BF023AFDACDC6E602B08424B2171D0F4FA3CD4 DUP2 MSTORE PUSH1 0x20 DUP3 MSTORE PUSH2 0x159F PUSH1 0x40 DUP4 PUSH2 0x123C JUMP JUMPDEST SWAP1 MLOAD SWAP1 KECCAK256 PUSH1 0xFF NOT AND SWAP1 JUMP JUMPDEST PUSH2 0x15B4 DUP3 DUP3 PUSH2 0x2232 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x15BF JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x15EC SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2960 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x15FA DUP3 DUP3 PUSH2 0x22D0 JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x1605 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x15EC SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x29C3 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x1289 JUMPI JUMP JUMPDEST PUSH2 0x164D PUSH2 0x236C JUMP JUMPDEST PUSH2 0x1655 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP2 SLOAD DUP4 DUP2 GT ISZERO DUP1 PUSH2 0x1A0E JUMPI JUMPDEST ISZERO PUSH2 0x19F4 JUMPI PUSH2 0x1675 SWAP1 DUP5 PUSH2 0x127C JUMP JUMPDEST SWAP2 DUP3 ISZERO PUSH2 0x19EE JUMPI DUP4 DUP3 SLOAD SWAP2 PUSH2 0x168A DUP6 DUP5 PUSH2 0x1632 JUMP JUMPDEST SWAP3 PUSH1 0x3 DUP6 ADD SLOAD SWAP5 DUP5 DUP7 LT PUSH0 EQ PUSH2 0x19E7 JUMPI PUSH2 0x16A4 DUP7 DUP7 PUSH2 0x127C JUMP JUMPDEST SWAP2 JUMPDEST DUP3 PUSH2 0x174A JUMPI JUMPDEST POP POP POP SSTORE PUSH2 0x16B8 PUSH2 0x1566 JUMP JUMPDEST SWAP1 NUMBER DUP6 SUB PUSH2 0x172C JUMPI PUSH0 SWAP4 JUMPDEST DUP5 DUP5 SUB PUSH2 0x16D6 JUMPI JUMPDEST POP POP PUSH1 0x3 SWAP2 POP ADD SSTORE SWAP1 JUMP JUMPDEST PUSH2 0x16E0 SWAP1 DUP7 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x1289 JUMPI PUSH32 0x1A45018BDAB6039C806FAC73D617B3BC5C6A2A0F22F6F90D2CA202B083087F99 PUSH1 0x60 PUSH1 0x3 SWAP6 DUP9 SWAP5 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE DUP9 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG3 PUSH0 DUP1 PUSH2 0x16CB JUMP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1744 JUMPI PUSH2 0x173E DUP2 DUP5 PUSH2 0x127C JUMP JUMPDEST SWAP4 PUSH2 0x16C3 JUMP JUMPDEST PUSH0 PUSH2 0x173E JUMP JUMPDEST PUSH2 0x1796 SWAP3 SWAP4 SWAP5 POP PUSH2 0x178E SWAP1 PUSH2 0x1761 PUSH1 0x5 DUP5 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 PUSH2 0x17A1 DUP7 DUP4 PUSH2 0x1632 JUMP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x17BF JUMPI POP DUP7 DUP1 SWAP4 SWAP3 PUSH2 0x17B7 SWAP3 PUSH2 0x2553 JUMP JUMPDEST PUSH0 DUP1 DUP1 PUSH2 0x16AC JUMP JUMPDEST SWAP7 SWAP6 SWAP4 SWAP3 SWAP5 SWAP1 SWAP8 SWAP2 POP PUSH2 0x17D0 PUSH2 0x1566 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP5 ADD SLOAD SWAP6 PUSH1 0x1 DUP8 ADD DUP1 SWAP8 GT PUSH2 0x1289 JUMPI PUSH1 0x1 SWAP10 SWAP9 PUSH1 0x4 PUSH1 0x5 DUP8 ADD SWAP7 ADD SWAP11 JUMPDEST DUP7 SLOAD DUP2 LT ISZERO PUSH2 0x18F7 JUMPI PUSH2 0x1803 DUP2 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP15 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP10 SWAP1 DUP1 PUSH2 0x183A JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x17F0 JUMP JUMPDEST SWAP1 PUSH2 0x1844 SWAP2 PUSH2 0x1632 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x18EC JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP16 SWAP5 SWAP4 DUP16 SWAP5 SWAP8 PUSH1 0x1 SWAP9 PUSH2 0x18DC JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP9 PUSH0 PUSH2 0x182E JUMP JUMPDEST PUSH0 PUSH2 0x18E6 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x18CD JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP PUSH2 0x190E SWAP2 SWAP5 SWAP11 POP DUP9 SWAP10 SWAP9 SWAP6 SWAP3 SWAP7 SWAP9 SWAP8 SWAP4 SWAP8 PUSH2 0x127C JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x191D JUMPI JUMPDEST POP POP POP PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x1926 SWAP1 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP3 ISZERO PUSH2 0x1915 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP5 POP SWAP1 SWAP2 DUP5 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE SWAP5 PUSH0 SWAP1 DUP7 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP5 DUP6 ISZERO PUSH2 0x18EC JUMPI PUSH1 0x20 DUP11 SWAP7 SWAP5 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 DUP9 SWAP7 PUSH2 0x19D7 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 PUSH0 DUP1 DUP1 PUSH2 0x1915 JUMP JUMPDEST PUSH0 PUSH2 0x19E1 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x19C7 JUMP JUMPDEST PUSH0 SWAP2 PUSH2 0x16A6 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST DUP4 PUSH4 0xA0D2B9DB PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE NUMBER PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP NUMBER DUP5 GT ISZERO PUSH2 0x1666 JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x1A25 PUSH0 DUP5 DUP5 PUSH2 0x26BA JUMP JUMPDEST ISZERO PUSH2 0x11FC JUMPI PUSH2 0x1A32 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1CC2 JUMPI PUSH2 0x1A40 DUP2 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x1A57 PUSH2 0x149E PUSH1 0x5 PUSH2 0x1A51 PUSH2 0x1566 JUMP JUMPDEST ADD PUSH2 0x12C8 JUMP JUMPDEST POP PUSH2 0x1A60 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1A85 PUSH1 0x5 DUP4 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1AC4 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x1AB9 SWAP2 PUSH2 0x12BB JUMP JUMPDEST SWAP5 ADD SWAP4 DUP5 SLOAD SWAP1 PUSH2 0x12BB JUMP JUMPDEST DUP1 DUP7 GT PUSH2 0x1CAC JUMPI SWAP2 PUSH1 0x6 SWAP2 PUSH2 0x1ADC DUP8 PUSH2 0x1AEA SWAP6 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE ADD SWAP2 DUP3 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1AF4 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1CA5 JUMPI JUMPDEST ISZERO PUSH2 0x1B83 JUMPI SWAP2 PUSH0 PUSH1 0x1 DUP4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 DUP5 PUSH1 0x40 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1B78 JUMPI JUMPDEST PUSH2 0x1B65 JUMPI JUMPDEST POP POP DUP7 DUP2 SSTORE ADD SSTORE JUMPDEST DUP2 MLOAD SWAP4 DUP5 MSTORE PUSH0 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1B71 SWAP3 ADD PUSH2 0x1303 JUMP JUMPDEST PUSH0 DUP5 PUSH2 0x1B42 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1B3D JUMP JUMPDEST POP POP SWAP1 PUSH2 0x1B8E PUSH2 0x1566 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x5 DUP5 ADD SWAP1 PUSH1 0x1 JUMPDEST DUP3 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1C87 JUMPI DUP5 PUSH2 0x1BB7 DUP4 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1BD7 JUMPI POP PUSH1 0x1 ADD PUSH2 0x1BA2 JUMP JUMPDEST SWAP1 PUSH0 SWAP7 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x1289 JUMPI PUSH2 0x1326 PUSH2 0x1BF9 PUSH2 0x1C12 SWAP4 DUP8 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 PUSH2 0x12EE JUMP JUMPDEST DUP3 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1C73 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP5 PUSH1 0x40 SWAP5 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1C56 PUSH2 0x1C41 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP4 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1B4A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP SWAP1 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 SWAP4 POP PUSH1 0x40 SWAP2 POP PUSH2 0x1B4A JUMP JUMPDEST POP PUSH0 PUSH2 0x1B18 JUMP JUMPDEST DUP6 PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP1 SWAP2 PUSH2 0x1CD7 DUP3 DUP5 DUP7 PUSH2 0x26BA JUMP JUMPDEST ISZERO PUSH2 0x155D JUMPI PUSH2 0x1CE4 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x1556 JUMPI PUSH2 0x1CF2 DUP4 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x1D03 PUSH2 0x149E PUSH1 0x5 PUSH2 0x1A51 PUSH2 0x1566 JUMP JUMPDEST POP PUSH2 0x1D0C PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1D31 PUSH1 0x5 DUP4 ADD PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1D65 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x1AB9 SWAP2 PUSH2 0x12BB JUMP JUMPDEST DUP1 PUSH2 0x1D70 DUP7 DUP9 PUSH2 0x12BB JUMP JUMPDEST GT PUSH2 0x1D7B DUP7 DUP9 PUSH2 0x12BB JUMP JUMPDEST SWAP1 PUSH2 0x1F4B JUMPI POP PUSH1 0x6 PUSH2 0x1DAD SWAP4 DUP7 SWAP4 PUSH2 0x1D9A DUP6 PUSH2 0x1524 DUP12 PUSH2 0x1DA8 SWAP8 PUSH2 0x127C JUMP JUMPDEST SWAP1 SSTORE ADD SWAP4 DUP5 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x127C JUMP JUMPDEST PUSH2 0x12BB JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1DB7 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1F42 JUMPI JUMPDEST ISZERO PUSH2 0x1E47 JUMPI SWAP2 DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 SWAP6 DUP9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP9 SWAP10 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1E3C JUMPI JUMPDEST PUSH2 0x1E29 JUMPI JUMPDEST POP POP DUP8 DUP2 SSTORE ADD SSTORE JUMPDEST DUP3 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1E35 SWAP3 ADD PUSH2 0x1303 JUMP JUMPDEST PUSH0 DUP6 PUSH2 0x1E07 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1E02 JUMP JUMPDEST POP POP SWAP2 PUSH2 0x1E52 PUSH2 0x1566 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 PUSH1 0x5 DUP6 ADD SWAP2 PUSH1 0x1 JUMPDEST DUP4 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1F23 JUMPI DUP6 PUSH2 0x1E7B DUP4 DUP8 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E9B JUMPI POP PUSH1 0x1 ADD PUSH2 0x1E66 JUMP JUMPDEST SWAP1 PUSH0 SWAP8 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 SWAP8 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x1289 JUMPI PUSH2 0x1326 PUSH2 0x1EBE PUSH2 0x1ED7 SWAP4 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP8 PUSH2 0x12EE JUMP JUMPDEST DUP4 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1C73 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 PUSH1 0x40 SWAP6 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1F06 PUSH2 0x1C41 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP5 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1E0F JUMP JUMPDEST POP POP SWAP1 SWAP2 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BC0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP4 SWAP5 POP PUSH1 0x40 SWAP3 POP PUSH2 0x1E0F JUMP JUMPDEST POP DUP3 ISZERO ISZERO PUSH2 0x1DDB JUMP JUMPDEST PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x1FBD JUMPI PUSH1 0x4 PUSH2 0x1F79 PUSH2 0x1566 JUMP JUMPDEST ADD DUP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD DUP1 SLOAD NUMBER GT ISZERO PUSH2 0x1FD3 JUMPI NUMBER SWAP1 SSTORE DUP1 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH0 DUP1 SWAP2 PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x1EFC6B41 PUSH1 0xE1 SHL DUP4 MSTORE GAS CALL DUP1 ISZERO PUSH2 0x18EC JUMPI PUSH2 0x1FC3 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1FCD SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x1FBD JUMP JUMPDEST POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x1FE2 PUSH2 0x1566 JUMP JUMPDEST PUSH2 0x1FEA PUSH2 0x236C JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x201D JUMPI PUSH1 0x3 ADD SLOAD ISZERO PUSH2 0x2015 JUMPI PUSH2 0x2012 NUMBER PUSH2 0x1645 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x2012 PUSH2 0x2806 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x202C PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x203B DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP7 PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL SWAP2 SWAP1 SWAP2 SHR AND SWAP4 SWAP1 DUP6 DUP6 EQ PUSH2 0x218F JUMPI DUP4 SLOAD PUSH1 0x1 JUMPDEST DUP2 DUP2 LT PUSH2 0x2152 JUMPI POP POP PUSH2 0x2073 PUSH2 0x1FDA JUMP JUMPDEST LT PUSH2 0x2149 JUMPI PUSH1 0x4 PUSH2 0x20AC SWAP2 PUSH2 0x2087 DUP7 PUSH2 0x1F60 JUMP JUMPDEST POP PUSH2 0x2091 DUP5 PUSH2 0x1F60 JUMP JUMPDEST POP ADD SWAP2 DUP6 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH2 0x1326 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP5 PUSH2 0x12C8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP4 MSTORE SWAP2 KECCAK256 SWAP1 DUP1 DUP3 SUB PUSH2 0x212B JUMPI JUMPDEST POP POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 PUSH1 0x40 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH31 0xF06471E88E0BC1DB6B6126EFDB09F80B597E6DDC145FF0DCABD12AFAB4EC57 PUSH0 DUP1 LOG3 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SWAP3 SLOAD DUP5 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 DUP6 ADD SSTORE ADD SLOAD SWAP2 ADD SSTORE PUSH0 DUP1 PUSH2 0x20D2 JUMP JUMPDEST POP POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST DUP8 PUSH2 0x215D DUP3 DUP9 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x217C JUMPI PUSH1 0x1 ADD PUSH2 0x2062 JUMP JUMPDEST DUP8 PUSH4 0xF158185D PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x222D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B20 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1CC2 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1CC2 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B40 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2374 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SWAP1 DUP2 SLOAD NUMBER DUP2 EQ PUSH2 0x254E JUMPI PUSH2 0x238C DUP2 NUMBER PUSH2 0x127C JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x1289 JUMPI PUSH1 0x3 DUP4 ADD DUP1 SLOAD SWAP1 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B60 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND DUP1 ISZERO PUSH2 0x2545 JUMPI JUMPDEST PUSH2 0x24EA JUMPI JUMPDEST POP POP NUMBER SWAP1 SSTORE PUSH1 0x6 DUP3 ADD SLOAD DUP1 PUSH2 0x23D3 JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0x7 DUP5 ADD SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x116D JUMPI PUSH1 0x2 DUP2 SUB PUSH2 0x2496 JUMPI POP POP PUSH1 0x5 DUP3 ADD DUP1 SLOAD SWAP4 PUSH1 0x4 SWAP1 SWAP4 ADD SWAP3 SWAP1 PUSH0 JUMPDEST DUP6 DUP2 LT PUSH2 0x2415 JUMPI POP POP POP POP POP POP JUMPDEST PUSH0 DUP1 DUP1 DUP1 PUSH2 0x23CD JUMP JUMPDEST DUP1 PUSH2 0x2422 PUSH1 0x1 SWAP3 DUP5 PUSH2 0x12EE JUMP JUMPDEST DUP4 DUP1 PUSH1 0xA0 SHL SUB SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND DUP3 DUP1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 MSTORE DUP7 PUSH1 0x20 MSTORE DUP6 DUP4 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD DUP7 DUP2 PUSH2 0x2457 JUMPI JUMPDEST POP POP POP POP ADD PUSH2 0x23FE JUMP JUMPDEST PUSH2 0x2460 SWAP2 PUSH2 0x1632 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH32 0xA34DB09D4126DD8DCD1D29F3DF65C01DCAC405127546E380ADD77FEDCA459BA7 PUSH1 0x20 NUMBER SWAP5 LOG4 PUSH0 DUP6 DUP2 DUP7 PUSH2 0x244D JUMP JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 POP SWAP1 PUSH1 0x1 EQ PUSH2 0x24AC JUMPI JUMPDEST POP POP POP PUSH2 0x240C JUMP JUMPDEST PUSH2 0x24B5 SWAP2 PUSH2 0x1632 JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xCEF44CE1A1FC7CA1F3078DAF79D3B60646D0E751BC72A69BFF12F66C4AEF3B8D PUSH1 0x20 NUMBER SWAP4 LOG3 PUSH0 DUP1 DUP1 PUSH2 0x24A4 JUMP JUMPDEST PUSH2 0x2501 PUSH2 0x24FB DUP8 PUSH1 0x6 DUP9 ADD SLOAD PUSH2 0x1632 JUMP JUMPDEST DUP4 PUSH2 0x12BB JUMP JUMPDEST DUP1 SWAP2 SSTORE DUP1 DUP3 SUB ISZERO PUSH2 0x23BD JUMPI PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH32 0x539CE444A515B8AA8769802297761FBEC80B5B543C617714BF5E0611CF669DB PUSH1 0x40 NUMBER SWAP4 LOG3 PUSH0 DUP1 PUSH2 0x23BD JUMP JUMPDEST POP DUP2 ISZERO ISZERO PUSH2 0x23B8 JUMP JUMPDEST POP POP POP JUMP JUMPDEST SWAP2 SWAP1 SWAP2 PUSH2 0x255E PUSH2 0x1566 JUMP JUMPDEST SWAP3 DUP1 ISZERO DUP1 DUP1 ISZERO PUSH2 0x26B2 JUMPI JUMPDEST PUSH2 0x26AB JUMPI PUSH1 0x1 DUP6 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x1289 JUMPI PUSH1 0x4 DUP7 ADD SWAP7 SWAP6 PUSH1 0x5 ADD PUSH1 0x1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x26A0 JUMPI PUSH2 0x259D DUP2 DUP4 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP1 PUSH2 0x25D4 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x258A JUMP JUMPDEST PUSH2 0x25DE SWAP1 DUP7 PUSH2 0x1632 JUMP JUMPDEST SWAP1 PUSH2 0x268C JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP8 SWAP1 DIV DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x18EC JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x267C JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP5 PUSH0 PUSH2 0x25C8 JUMP JUMPDEST PUSH0 PUSH2 0x2686 SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x266D JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP1 POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x2569 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 DUP3 ISZERO PUSH2 0x27F7 JUMPI PUSH2 0x26D3 PUSH2 0x1566 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD PUSH2 0x26FD PUSH2 0x26E3 DUP3 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 EQ SWAP2 PUSH2 0x12C8 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x27E5 JUMPI POP PUSH1 0x4 SWAP1 DUP5 PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP3 DUP3 DUP3 SLOAD EQ SWAP2 DUP3 PUSH2 0x27D7 JUMPI JUMPDEST POP POP PUSH2 0x1556 JUMPI ISZERO SWAP1 DUP2 ISZERO SWAP2 PUSH2 0x27CD JUMPI JUMPDEST POP PUSH2 0x274A JUMPI POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP6 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x18EC JUMPI PUSH0 SWAP2 PUSH2 0x2792 JUMPI JUMPDEST POP PUSH2 0x1FBD JUMPI PUSH4 0xA5FE8615 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x27C5 JUMPI JUMPDEST DUP2 PUSH2 0x27AD PUSH1 0x20 SWAP4 DUP4 PUSH2 0x123C JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x219 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x219 JUMPI PUSH0 PUSH2 0x277B JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27A0 JUMP JUMPDEST SWAP1 POP ISZERO ISZERO PUSH0 PUSH2 0x273F JUMP JUMPDEST PUSH1 0x1 ADD SLOAD EQ SWAP1 POP DUP3 PUSH0 PUSH2 0x272F JUMP JUMPDEST PUSH4 0xFDA6C187 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x22A4EC7B PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x280E PUSH2 0x1566 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x2821 DUP3 NUMBER PUSH2 0x127C JUMP JUMPDEST SWAP1 DUP2 ISZERO PUSH2 0x2959 JUMPI PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x1289 JUMPI PUSH0 SWAP5 SWAP4 PUSH1 0x4 PUSH1 0x5 DUP4 ADD SWAP3 ADD SWAP6 JUMPDEST DUP3 SLOAD DUP2 LT ISZERO PUSH2 0x294C JUMPI PUSH2 0x2853 DUP2 DUP5 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2943 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 MSTORE DUP8 PUSH1 0x20 MSTORE DUP5 PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 PUSH2 0x2894 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP JUMPDEST ADD PUSH2 0x2840 JUMP JUMPDEST SWAP1 PUSH2 0x289E SWAP2 PUSH2 0x1632 JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 DUP4 EXTCODESIZE ISZERO PUSH2 0x219 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x18EC JUMPI PUSH1 0x1 SWAP5 DUP10 SWAP3 PUSH2 0x2933 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B00 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 NUMBER SWAP5 LOG4 DUP5 PUSH0 PUSH2 0x2887 JUMP JUMPDEST PUSH0 PUSH2 0x293D SWAP2 PUSH2 0x123C JUMP JUMPDEST PUSH0 PUSH2 0x2912 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP PUSH2 0x288E JUMP JUMPDEST POP SWAP5 POP POP POP POP NUMBER SWAP1 SSTORE NUMBER SWAP1 JUMP JUMPDEST POP SWAP1 SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x1556 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x64B JUMPI PUSH2 0x29B0 PUSH2 0x299A DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x12EE JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x2A6C JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x1289 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x1289 JUMPI DUP2 DUP2 SUB PUSH2 0x2A37 JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x1C73 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x2A18 DUP3 DUP3 PUSH2 0x12EE JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2A57 PUSH2 0x2A47 PUSH2 0x299A SWAP4 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x12EE JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x29FF JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BE0 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x2A90 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8030C56D855D8DF534C916B78EAC3522E5FAFD59F BASEFEE PUSH26 0x9C4A97D42E80F6E08989607935BD0AE54BC31F548C14DBA4D37C TLOAD PUSH5 0xB3F8CA900C 0xB4 PUSH9 0xFB8ABD54D5894F5502 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46D9B779B17422D0DF9222301 DUP12 ORIGIN 0xB4 DATALOADN 0xFA46 RJUMP 0x7172 RETURNDATASIZE PUSH9 0x17E2486D003BECC55F STOP SHL 0xD3 CREATE 0xD2 CALL STOP BYTE DUP6 PUSH14 0x81215CEB86C548BDBC3BF52480A0 DUP10 PUSH25 0xF8C3EA6E2BD421F0C57E16840DF040F15088DC2F81FE391C39 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR DUP13 ADD 0xBF 0x4F DUP3 PUSH26 0xDF7AF8F2E90EEA4858F9D7498C6312CC7CC9542590FF22A1FB64 PUSH20 0x6F6C634300082100330000000000000000000000 ","sourceMap":"9256:54785:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;3245:26:45;9256:54785:44;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;;;11931:35;;:::i;:::-;59736:23;;;9256:54785;59799:22;59858:19;59799:22;;;9256:54785;59858:19;;9256:54785;;;;;;;;:::i;:::-;;;59677:215;;;9256:54785;;59677:215;;9256:54785;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;5815:26:21;9256:54785:44;;;;:::i;:::-;5785:18:21;3283:4;5785:18;;;:::i;:::-;3283:4;:::i;:::-;5815:26;:::i;:::-;9256:54785:44;;;;;;;-1:-1:-1;;9256:54785:44;;;;;47910:50;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;;47910:50;;:::i;:::-;9256:54785;-1:-1:-1;;;;;;;;;;;3556:68:36;9256:54785:44;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;39944:62;9256:54785;;;;39944:62;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;4301:16:23;9256:54785:44;;;;4724:16:23;;:34;;;;9256:54785:44;4803:1:23;4788:16;:50;;;;9256:54785:44;4853:13:23;:30;;;;9256:54785:44;4849:91:23;;;-1:-1:-1;;9256:54785:44;;4803:1:23;9256:54785:44;-1:-1:-1;;;;;;;;;;;9256:54785:44;;4977:67:23;;9256:54785:44;6891:76:23;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;9256:54785:44;;;5377:22:45;;9256:54785:44;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;4967:24:21;9256:54785:44;;;;;;4241:31:22;;6946:18:21;2399:26:45;;;-1:-1:-1;;;;;;;;;;;7025:52:21;9256:54785:44;7025:52:21;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;4967:24:21;9256:54785:44;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;2399:26:45;;9256:54785:44;;-1:-1:-1;;;;;;;;;;;7025:52:21;9256:54785:44;7025:52:21;3245:26:45;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;4967:24:21;9256:54785:44;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;2399:26:45;;9256:54785:44;;-1:-1:-1;;;;;;;;;;;7025:52:21;9256:54785:44;7025:52:21;4241:31:22;:::i;:::-;4282:71;;9256:54785:44;11931:35;;;:::i;:::-;20921:17;;;9256:54785;;-1:-1:-1;;;9256:54785:44;;;;;;;4803:1:23;9256:54785:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20966:22;;;20991:30;9256:54785;;;;;;;;4803:1:23;21312:12:44;21286:23;;9256:54785;5064:101:23;;9256:54785:44;5064:101:23;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;-1:-1:-1;;;;;;;;;;;9256:54785:44;5140:14:23;9256:54785:44;;;4803:1:23;9256:54785:44;;5140:14:23;9256:54785:44;;;;;;;;;;;;;4282:71:22;-1:-1:-1;;;;;;;;;;;9256:54785:44;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;11511:50:41;;9256:54785:44;11511:50:41;:::i;:::-;;4282:71:22;;;9256:54785:44;;;;;;;;;4977:67:23;-1:-1:-1;;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;4977:67:23;;;4849:91;4906:23;;;9256:54785:44;4906:23:23;9256:54785:44;;4906:23:23;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:23;;4724:34;;;-1:-1:-1;4724:34:23;;9256:54785:44;;;;;;-1:-1:-1;;9256:54785:44;;;;;47275:97;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;;;;;;;;;-1:-1:-1;;;;;9256:54785:44;47275:97;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;42084:51;11931:35;;:::i;:::-;42084:51;9256:54785;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;3949:31:21;9256:54785:44;;;;;;-1:-1:-1;9256:54785:44;;;;;;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;5853:18:41;9256:54785:44;;;;;5853:18:41;:::i;:::-;9256:54785:44;;;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;60480:53;9256:54785;;60480:46;11931:35;;:::i;:::-;60480:46;:53;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;;;:::i;:::-;;;11931:35;;:::i;:::-;61286:48;:56;9256:54785;;;;;;-1:-1:-1;9256:54785:44;;;;;-1:-1:-1;9256:54785:44;61455:26;9256:54785;;61455:26;;9256:54785;61421:60;;;;:::i;:::-;9256:54785;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;2770:61:25;;3300:4;9256:54785:44;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;3319:20:25;9256:54785:44;;;966:10:24;9256:54785:44;;3319:20:25;9256:54785:44;2770:61:25;2805:15;;;9256:54785:44;2805:15:25;9256:54785:44;;2805:15:25;9256:54785:44;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;:::i;:::-;;;3283:4:21;;;:::i;:::-;9256:54785:44;11931:35;;:::i;:::-;44758:19;:27;9256:54785;;;;;;-1:-1:-1;9256:54785:44;;;;45075:34;9256:54785;-1:-1:-1;9256:54785:44;45075:34;9256:54785;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;11931:35;;:::i;:::-;9256:54785;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;47601:43;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;47631:12:44;47601:43;;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;45808:90;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;45885:12:44;;9256:54785;;;;;;-1:-1:-1;;;;;9256:54785:44;45808:90;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;60266:46;11931:35;;:::i;:::-;60266:46;9256:54785;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;29711:41;9256:54785;;29711:41;:::i;:::-;9256:54785;-1:-1:-1;;;;;;;;;;;3556:68:36;9256:54785:44;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;60050:46;11931:35;;:::i;:::-;60050:46;9256:54785;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;24060:23;11931:35;;:::i;:::-;24060:23;9256:54785;24087:12;24060:39;24087:12;;9256:54785;24087:12;24060:78;9256:54785;;;;;;24060:78;9256:54785;24117:21;;:::i;:::-;24060:78;;9256:54785;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;;;:::i;:::-;;;11931:35;;:::i;:::-;60718:48;:56;9256:54785;;;;;;-1:-1:-1;9256:54785:44;;;;;-1:-1:-1;9256:54785:44;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;44047:21;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;44047:21:44;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;45425:76;9256:54785;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;45488:12:44;;9256:54785;;;-1:-1:-1;;;;;9256:54785:44;45425:76;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;2971:9:25;2967:62;;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;3627:22:25;9256:54785:44;;;966:10:24;9256:54785:44;;3627:22:25;9256:54785:44;2967:62:25;3003:15;;;9256:54785:44;3003:15:25;9256:54785:44;;3003:15:25;9256:54785:44;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;29427:40;29454:12;29427:40;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;966:10:24;-1:-1:-1;;;;;9256:54785:44;;6489:34:21;6485:102;;6597:37;9256:54785:44;;;6597:37:21;:::i;6485:102::-;6546:30;;;9256:54785:44;6546:30:21;9256:54785:44;;6546:30:21;9256:54785:44;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;1936:9:45;9256:54785:44;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11931:35;;:::i;:::-;62361:27;9256:54785;;;;;;-1:-1:-1;9256:54785:44;;62361:19;;9256:54785;;;-1:-1:-1;9256:54785:44;;;62564:23;62695:22;62564:23;;;;9256:54785;62623:26;;9256:54785;62695:22;;9256:54785;;;;;;;;:::i;:::-;;;;;62418:314;;9256:54785;;;;62418:314;;9256:54785;;;62418:314;9256:54785;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;5398:25:21;9256:54785:44;;;;:::i;:::-;5368:18:21;3283:4;5368:18;;;:::i;3283:4::-;5398:25;:::i;9256:54785:44:-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;:::i;:::-;63973:59;11931:35;;:::i;:::-;63907:22;63795:73;9256:54785;;;;;;63816:19;;9256:54785;;;;;;63795:73;;:::i;:::-;9256:54785;;;;63907:22;9256:54785;63878:26;;9256:54785;63878:26;;9256:54785;63973:59;:::i;:::-;9256:54785;63939:31;;9256:54785;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;;;;;41477:426;9256:54785;3283:4:21;;;:::i;:::-;41477:426:44;:::i;:::-;9256:54785;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;9256:54785:44;38689:55;38731:12;9256:54785;;38689:55;:::i;9256:54785::-;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;21606:64:44;;;:146;;;;9256:54785;21606:220;;;;9256:54785;21606:292;;;;9256:54785;21606:344;;;;9256:54785;;;;;;;21606:344;-1:-1:-1;;;6687:49:45;;;-1:-1:-1;6687:89:45;;;;21606:344:44;;;;;6687:89:45;-1:-1:-1;;;1851:57:22;;;-1:-1:-1;1851:97:22;;;;6687:89:45;;;;;1851:97:22;-1:-1:-1;;;3599:47:21;;;-1:-1:-1;3599:87:21;;;;1851:97:22;;;;;3599:87:21;-1:-1:-1;;;1101:40:26;;-1:-1:-1;3599:87:21;;;21606:292:44;-1:-1:-1;;;21842:56:44;;;-1:-1:-1;21606:292:44;;:220;-1:-1:-1;;;21768:58:44;;;-1:-1:-1;21606:220:44;;:146;-1:-1:-1;;;21686:66:44;;;-1:-1:-1;21606:146:44;;9256:54785;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;9256:54785:44;;;;;-1:-1:-1;9256:54785:44;41477:426;41703:22;11931:35;;:::i;:::-;41703:22;9256:54785;;;;;;;;;;;;;;;;;41740:18;;;41736:35;;9256:54785;;;41829:45;9256:54785;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;41829:45;41892:4;41477:426;:::o;41736:35::-;41760:11;;;41767:4;41760:11;:::o;9256:54785::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;9256:54785:44;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4807:191:21;-1:-1:-1;9256:54785:44;-1:-1:-1;;;;;;;;;;;9256:54785:44;;4967:24:21;9256:54785:44;-1:-1:-1;9256:54785:44;4967:24:21;9256:54785:44;4807:191:21;:::o;9256:54785:44:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9256:54785:44;;-1:-1:-1;9256:54785:44;;;-1:-1:-1;9256:54785:44;:::o;:::-;;;;;-1:-1:-1;;;9256:54785:44;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;;;:::o;4196:103:21:-;966:10:24;-1:-1:-1;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;9256:54785:44;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;-1:-1:-1;4562:47:21;4196:103;966:10:24;-1:-1:-1;9256:54785:44;;;;;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;9256:54785:44;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;-1:-1:-1;4562:47:21;4196:103;-1:-1:-1;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;966:10:24;9256:54785:44;;;;;;;;;;4516:23:21;4512:108;;4196:103;:::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;9256:54785:44;;;;-1:-1:-1;4562:47:21;1290:377:33;-1:-1:-1;;;;;;;;;;;3327:69:36;1444:93:33;;1655:4;-1:-1:-1;;;;;;;;;;;3556:68:36;1290:377:33:o;1444:93::-;1496:30;;;-1:-1:-1;1496:30:33;;-1:-1:-1;1496:30:33;40297:1105:44;11931:35;;:::i;:::-;9256:54785;;40554:42;;;;40550:59;;40624:21;;:::i;:::-;:43;40620:61;;40799:20;40706:17;;;40692:35;40706:20;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;40692:35;:::i;:::-;;40799:20;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;-1:-1:-1;9256:54785:44;;;40779:19;;;9256:54785;;;;;;;40941:33;9256:54785;40941:33;;:::i;:::-;40918:56;;9256:54785;;41187:33;;;;;:55;41308:65;41187:33;;;9256:54785;41187:33;;:::i;:::-;:55;:::i;:::-;9256:54785;;;;;;;;;;;;41308:65;41391:4;40297:1105;:::o;9256:54785::-;;;;;;;;40779:19;9256:54785;;;;;;;;40620:61;40669:12;;;9256:54785;40669:12;:::o;40550:59::-;40598:11;;;;40605:4;40598:11;:::o;9575:252::-;9256:54785;;9711:77;;;9256:54785;;;9711:77;;;;9256:54785;9711:77;;:::i;:::-;9256:54785;;9701:88;;-1:-1:-1;;9701:126:44;;9575:252::o;4035:348:22:-;4241:31;;;;:::i;:::-;4282:71;;;;4362:14;;4035:348;:::o;4282:71::-;-1:-1:-1;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;11511:50:41;;-1:-1:-1;;;;;9256:54785:44;;11511:50:41;:::i;:::-;;4035:348:22;:::o;4486:353::-;4693:32;;;;:::i;:::-;4735:74;;;;4818:14;;4486:353;:::o;4735:74::-;-1:-1:-1;9256:54785:44;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;11832:53:41;;-1:-1:-1;;;;;9256:54785:44;;11832:53:41;:::i;9256:54785:44:-;;;;;;;;;;;;;;;;:::o;30668:2269::-;30744:7;;:::i;:::-;11931:35;;:::i;:::-;30895:23;;;9256:54785;;;30895:40;;;;:73;;;30668:2269;9256:54785;;;31139:39;;;;:::i;:::-;31192:11;;;31188:37;;9256:54785;;;31618:27;;;;;:::i;:::-;31683:19;;;;9256:54785;31733:75;:34;;;:75;:34;;;31770;;;;:::i;:::-;31733:75;;31823:13;31819:937;;31733:75;9256:54785;;;;11931:35;;:::i;:::-;33824:137;31088:12;33824:29;;31088:12;;9256:54785;33824:137;;34065:30;;;34061:276;;33824:137;34347:19;;31683;34347;;;9256:54785;30668:2269;:::o;34061:276::-;34255:22;;;;:::i;:::-;30895:23;9256:54785;;;;;;;34116:210;9256:54785;31683:19;9256:54785;;;;;34116:210;9256:54785;;;;;;;;;;;34116:210;34061:276;;;;33824:137;33885:34;;;;;;33922;;;;:::i;:::-;33824:137;;;33885:75;9256:54785;33885:75;;31819:937;32384:80;32236:17;;;;32384:43;32236:17;:20;:17;;;:20;:::i;:::-;9256:54785;;31683:19;9256:54785;;;;;-1:-1:-1;;;;;9256:54785:44;-1:-1:-1;9256:54785:44;;;32311:19;;;9256:54785;;;;;32405:22;;;;9256:54785;;32384:43;:::i;:::-;9256:54785;;32384:80;;:::i;:::-;32504:22;;;;;:::i;:::-;32545:26;;;;;;32632:13;;;;;;;;:::i;:::-;31819:937;;;;;32541:204;11931:35;;;;;;;;;;;:::i;:::-;35143:23;30895;35143;;9256:54785;;30895:23;9256:54785;;;;;;;30895:23;35239:13;;32311:19;32236:17;35258;;35392:19;;35234:475;35284:3;9256:54785;;35254:28;;;;;35320:20;;;;:::i;:::-;9256:54785;;31683:19;9256:54785;;;;;-1:-1:-1;;;;;9256:54785:44;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;35392:27;9256:54785;;;35434:265;;35284:3;;;30895:23;35284:3;;9256:54785;35239:13;;35434:265;35510:40;;;;:::i;:::-;35568:11;-1:-1:-1;;;;;9256:54785:44;;;35568:32;;;;;9256:54785;;-1:-1:-1;;;35568:32:44;;-1:-1:-1;;;;;9256:54785:44;;32311:19;35568:32;;9256:54785;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;-1:-1:-1;;35568:32:44;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;35568:32;;;;;;30895:23;35568:32;;;35434:265;9256:54785;;;;;;35623:61;35434:265;;;;35568:32;9256:54785;35568:32;;;:::i;:::-;;;;;9256:54785;;;;;;;;;35254:28;;35820:26;35254:28;;;;;;;;;;;;;;35820:26;:::i;:::-;35860:23;;35856:337;;35234:475;32541:204;;;;;35856:337;35924:20;;;:::i;:::-;9256:54785;;31683:19;9256:54785;;;;;-1:-1:-1;;;;;9256:54785:44;;35958:225;;35856:337;35958:225;36010:11;-1:-1:-1;;;;;9256:54785:44;;-1:-1:-1;9256:54785:44;;36010:53;;;;;9256:54785;;-1:-1:-1;;;36010:53:44;;-1:-1:-1;;;;;9256:54785:44;;32311:19;36010:53;;9256:54785;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;-1:-1:-1;;36010:53:44;;;;;;;9256:54785;36010:53;;;-1:-1:-1;;;;;;;;;;;36010:53:44;;;;;35958:225;9256:54785;;;;;;36086:82;35958:225;;;35856:337;;36010:53;9256:54785;36010:53;;;:::i;:::-;;;;31733:75;9256:54785;31733:75;;;31188:37;31205:20;;;;:::o;9256:54785::-;;;;;;;;;;;31088:12;9256:54785;;;;;30895:73;30956:12;;30939:29;;;30895:73;;51219:1370;;;51426:72;9256:54785;51426:72;;;:::i;:::-;51425:73;51421:90;;51526:21;;:::i;:::-;:43;51522:61;;51594:21;;;:::i;:::-;;51625:64;51639:49;:46;11931:35;;:::i;:::-;51639:46;:49;:::i;51625:64::-;;11931:35;;:::i;:::-;54960:19;;;:27;9256:54785;;;;;;;;;;;;;;;55058:17;:20;51639:46;55058:17;;:20;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;55566:121;;9256:54785;;55566:80;;;:::i;:::-;55661:26;;9256:54785;;;55566:121;;:::i;:::-;55718:55;;;9256:54785;;55979:36;56068:22;55979:36;;;56068:51;55979:36;;:::i;:::-;:54;9256:54785;56068:22;9256:54785;;;;;56068:51;;:::i;:::-;:69;9256:54785;11931:35;;:::i;:::-;-1:-1:-1;;;;;9256:54785:44;;-1:-1:-1;9256:54785:44;;;54960:19;56866;;9256:54785;;;;;;57901:25;;;;;:49;;51219:1370;57897:489;;;9256:54785;-1:-1:-1;55661:26:44;9256:54785;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;58029:36;:71;;;57897:489;58025:107;;57897:489;9256:54785;;;;;58215:26;9256:54785;57897:489;9256:54785;;;;;-1:-1:-1;9256:54785:44;;;;-1:-1:-1;;;;;9256:54785:44;;52491:70;55661:26;51219:1370;:::o;58025:107::-;51639:46;58102:30;:17;;:30;:::i;:::-;58025:107;;;;58029:71;58069:26;;;;9256:54785;58069:31;58029:71;;57897:489;11931:35;;;;;:::i;:::-;58843:13;-1:-1:-1;;;;;9256:54785:44;;;51639:46;58862:17;;;55661:26;58888:3;9256:54785;;58858:28;;;;;;58911:20;;;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;58911:30;58907:255;;58888:3;55661:26;9256:54785;58843:13;;58907:255;9256:54785;;;;;;;;;;;;;;;;58961:20;58984:47;58961:70;58984:47;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;58961:20;;:::i;:70::-;9256:54785;;;;;;;-1:-1:-1;;;;;;;;;;;52491:70:44;9256:54785;;54960:19;;-1:-1:-1;;9256:54785:44;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9256:54785:44;59097:19;9256:54785;;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;57897:489;;9256:54785;;;;-1:-1:-1;9256:54785:44;;54960:19;9256:54785;;-1:-1:-1;9256:54785:44;58858:28;;;;;-1:-1:-1;;;;;;;;;;;58858:28:44;;;9256:54785;58858:28;;57897:489;;57901:49;;-1:-1:-1;57901:49:44;;9256:54785;;;;;-1:-1:-1;9256:54785:44;54960:19;9256:54785;;;;-1:-1:-1;9256:54785:44;51522:61;51571:12;;9256:54785;51571:12;:::o;51219:1370::-;;;;;51426:72;;;;;:::i;:::-;51425:73;51421:90;;51526:21;;:::i;:::-;:43;51522:61;;51594:21;;;:::i;:::-;;51625:64;51639:49;:46;11931:35;;:::i;51625:64::-;;11931:35;;:::i;:::-;54960:19;;;:27;9256:54785;;;;;;;-1:-1:-1;9256:54785:44;;;;;-1:-1:-1;9256:54785:44;55058:17;:20;51639:46;55058:17;;:20;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;;55566:121;;9256:54785;;55566:80;;;:::i;:121::-;55718:38;;;;;:::i;:::-;:55;55867:38;;;;:::i;:::-;9256:54785;;;55979:36;56068:22;:69;55979:36;;;:54;:36;;;56068:51;55979:36;;:::i;:54::-;9256:54785;;56068:22;9256:54785;;;;;56068:51;;:::i;:::-;:69;:::i;:::-;9256:54785;;11931:35;;:::i;:::-;-1:-1:-1;;;;;9256:54785:44;;-1:-1:-1;9256:54785:44;;;54960:19;56866;;9256:54785;;;;;;57901:25;;;;;:49;;51219:1370;57897:489;;;9256:54785;;55661:26;9256:54785;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;58029:36;:71;;;57897:489;58025:107;;57897:489;9256:54785;;;;;58215:26;9256:54785;57897:489;9256:54785;;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;52491:70;55661:26;51219:1370;:::o;58025:107::-;51639:46;58102:30;:17;;:30;:::i;:::-;58025:107;;;;58029:71;58069:26;;;;9256:54785;58069:31;58029:71;;57897:489;11931:35;;;;;:::i;:::-;58843:13;-1:-1:-1;;;;;9256:54785:44;;;51639:46;58862:17;;;55661:26;58888:3;9256:54785;;58858:28;;;;;;58911:20;;;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;58911:30;58907:255;;58888:3;55661:26;9256:54785;58843:13;;58907:255;9256:54785;;;;;;;;;;;;;;;;;58961:20;58984:47;58961:70;58984:47;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;58961:20;;:::i;:70::-;9256:54785;;;;;;;-1:-1:-1;;;;;;;;;;;52491:70:44;9256:54785;;54960:19;;-1:-1:-1;;9256:54785:44;;;;;;;:::i;:::-;;-1:-1:-1;9256:54785:44;59097:19;9256:54785;;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;57897:489;;58858:28;;;;;;-1:-1:-1;;;;;;;;;;;58858:28:44;;;9256:54785;58858:28;;57897:489;;57901:49;57930:20;;;;57901:49;;9256:54785;;;;;;54960:19;9256:54785;;;;;;42760:909;-1:-1:-1;;;;;9256:54785:44;42910:20;;42906:37;;43066:19;11931:35;;:::i;:::-;43066:19;9256:54785;;;;;43269:34;9256:54785;;;43269:34;9256:54785;;43253:12;:50;;43249:67;;43253:12;9256:54785;;43585:56;;;;;9256:54785;;;43066:19;9256:54785;;;;;;;;;43585:56;;;;;;;;;;42760:909;43651:11;43658:4;42760:909;:::o;43585:56::-;9256:54785;43585:56;;;:::i;:::-;9256:54785;43585:56;;43249:67;43305:11;;43312:4;43305:11;:::o;27633:344::-;11931:35;;:::i;:::-;27700:64;;:::i;:::-;9256:54785;-1:-1:-1;;;;;;;;;;;9256:54785:44;;27811:44;;27877:19;;9256:54785;27873:23;:97;;27899:40;27926:12;27899:40;:::i;:::-;27633:344;:::o;27873:97::-;27942:28;;:::i;27811:44::-;27832:23;;9256:54785;27825:30;:::o;48797:1895::-;11931:35;;:::i;:::-;49003:17;;;;:20;;;;:::i;:::-;9256:54785;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;49037:24;;;49033:41;;9256:54785;;49524:1;49527:28;;;;;;49691:21;;;;:::i;:::-;:43;49687:61;;50027:19;50248:33;49829:25;;;;:::i;:::-;;49864;;;:::i;:::-;;50027:19;:31;9256:54785;-1:-1:-1;9256:54785:44;;;;50248:20;50027:55;9256:54785;-1:-1:-1;9256:54785:44;50027:55;9256:54785;50248:20;;:::i;:33::-;-1:-1:-1;;;;;9256:54785:44;;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;;;;;;;;;49507:170;50373:31;;9256:54785;;;;;;;-1:-1:-1;9256:54785:44;;;;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;;;-1:-1:-1;9256:54785:44;;;50027:55;9256:54785;-1:-1:-1;9256:54785:44;50519:55;9256:54785;50620:44;9256:54785;50620:44;;49524:1;48797:1895;:::o;9256:54785::-;50027:55;9256:54785;;;;;;49524:1;9256:54785;;;49524:1;9256:54785;;;;;;;;;;;;49687:61;49736:12;;;;;9256:54785;49736:12;:::o;49557:3::-;49584:20;;;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;49584:34;9256:54785;;49524:1;9256:54785;49512:13;;9256:54785;;;;;;;;;;;;49033:41;49063:11;;;;;;49070:4;49063:11;:::o;7318:387:21:-;-1:-1:-1;;;;;9256:54785:44;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;-1:-1:-1;;9256:54785:44;;;;;966:10:24;;9256:54785:44;-1:-1:-1;;;;;;;;;;;2399:26:45;7580:40:21;;9256:54785:44;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;9256:54785:44;7676:12:21;:::o;7318:387::-;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;966:10:24;;9256:54785:44;;7580:40:21;;9256:54785:44;7580:40:21;7557:4;7634:11;:::o;7942:388::-;9256:54785:44;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;;;;;;;;;;;;-1:-1:-1;;9256:54785:44;;;966:10:24;;9256:54785:44;;8205:40:21;;9256:54785:44;8205:40:21;9256:54785:44;8259:11:21;:::o;24659:2295:44:-;11931:35;;:::i;:::-;24812:22;;;9256:54785;;;24865:12;24848:29;;24844:42;;24913:28;24865:12;;24913:28;:::i;:::-;9256:54785;24987:1;9256:54785;;;;;;;25371:19;;;9256:54785;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;;25404:28;;;;24659:2295;25400:357;;24659:2295;24865:12;;;9256:54785;;25882:22;;;9256:54785;25878:26;25874:1074;;24659:2295;;;;;:::o;25874:1074::-;9256:54785;25924:22;;;9256:54785;;25371:19;9256:54785;;;;;24812:22;25924:56;;24812:22;;-1:-1:-1;;26085:17:44;;;9256:54785;;;26235:19;;;;;26066:13;-1:-1:-1;26081:28:44;;;;;;25920:945;;;;;;;25874:1074;;;;;;26111:3;26155:20;;24987:1;26155:20;;;:::i;:::-;9256:54785;;;;;;;;25371:19;9256:54785;;;;;;;;;;-1:-1:-1;9256:54785:44;;;;;;;-1:-1:-1;9256:54785:44;26293:26;9256:54785;26289:30;;26285:234;;26111:3;;;;;9256:54785;26066:13;;26285:234;26364:35;;;:::i;:::-;9256:54785;;;;;;26430:66;9256:54785;24865:12;26430:66;;26285:234;;;;;;25920:945;9256:54785;;;;-1:-1:-1;9256:54785:44;24987:1;26561:56;26557:308;;25920:945;;;;;;26557:308;26724:31;;;:::i;:::-;9256:54785;;;;;;26778:72;9256:54785;24865:12;26778:72;;26557:308;;;;;25400:357;25448:54;25471:31;:22;;;;9256:54785;25471:31;:::i;:::-;25448:54;;:::i;:::-;9256:54785;;;25584:35;;;25580:167;25400:357;25580:167;9256:54785;;;;;;;;;24865:12;25644:88;9256:54785;24865:12;25644:88;;25580:167;;25400:357;;25404:28;25416:16;;;;25404:28;;24844:42;24879:7;;;:::o;36704:1751::-;;;;11931:35;;:::i;:::-;37148:18;;;;:36;;;;36704:1751;37144:49;;37223:23;;;9256:54785;;37223:23;9256:54785;;;;;;;37539:19;;;;37386:13;37405:17;;37223:23;37431:3;9256:54785;;37401:28;;;;;37467:20;;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;-1:-1:-1;9256:54785:44;;;;;;;;;;;;;37539:27;9256:54785;;;37581:858;;37431:3;;;37223:23;37431:3;;9256:54785;37386:13;;37581:858;38230:43;;;;:::i;:::-;9256:54785;;;38308:11;-1:-1:-1;;;;;9256:54785:44;;;;;;38308:32;;;;;9256:54785;;-1:-1:-1;;;38308:32:44;;-1:-1:-1;;;;;9256:54785:44;;37539:19;38308:32;;9256:54785;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;-1:-1:-1;;38308:32:44;;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;38308:32;;37223:23;38308:32;;;;;37581:858;9256:54785;;;;;;38363:61;37581:858;;;;38308:32;37165:1;38308:32;;;:::i;:::-;;;;9256:54785;;;;37165:1;9256:54785;;37539:19;9256:54785;;37165:1;9256:54785;37401:28;;;;;;;;;;36704:1751::o;37144:49::-;37186:7;;;;;:::o;37148:36::-;37170:14;;;37148:36;;53138:932;-1:-1:-1;;;;;9256:54785:44;;53138:932;53320:20;;9256:54785;;11931:35;;:::i;:::-;53474:17;;;53532:20;53474;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;53464:30;;;53532:20;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;;;53603:27;:19;:27;9256:54785;-1:-1:-1;9256:54785:44;53603:19;9256:54785;;;-1:-1:-1;9256:54785:44;;;;;53645:55;:104;;;;53138:932;53641:134;;;;53810:25;;;;:49;;;53138:932;53806:235;;;54052:11;54059:4;53138:932;:::o;53806:235::-;9256:54785;;-1:-1:-1;;;53898:68:44;;-1:-1:-1;;;53603:19:44;53898:68;;9256:54785;;;53898:68;9256:54785;53898:68;;;;;;;;9256:54785;53898:68;;;53806:235;9256:54785;53806:235;9256:54785;;;;;;53603:19;9256:54785;53898:68;9256:54785;;53898:68;;;9256:54785;53898:68;;9256:54785;53898:68;;;;;;9256:54785;53898:68;;;:::i;:::-;;;9256:54785;;;;;;;;;;;;53898:68;;;;;;-1:-1:-1;53898:68:44;;53810:49;53839:20;;;;53810:49;;;53645:104;53704:26;;9256:54785;53704:45;;-1:-1:-1;53645:104:44;;;;9256:54785;;;;;;;;;;;;;;;;;;;;28289:936;11931:35;;:::i;:::-;28470:23;;;;9256:54785;;;28455:12;:38;:12;;:38;:::i;:::-;28507:11;;;28503:47;;28470:23;9256:54785;;;;;;;;28624:13;;28826:19;28643:17;;;28826:19;;28619:522;28669:3;9256:54785;;28639:28;;;;;28705:20;;;;:::i;:::-;9256:54785;;;;;;;;-1:-1:-1;;;;;9256:54785:44;;28743:20;;28739:34;;9256:54785;;;;;;;-1:-1:-1;9256:54785:44;;;;;;-1:-1:-1;9256:54785:44;;28871:35;28867:264;;28669:3;;;28470:23;28669:3;;28624:13;9256:54785;28624:13;;28867:264;28943:40;;;;:::i;:::-;29001:11;-1:-1:-1;;;;;9256:54785:44;;29001:32;;;;;9256:54785;;-1:-1:-1;;;29001:32:44;;-1:-1:-1;;;;;9256:54785:44;;28826:19;29001:32;;9256:54785;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;-1:-1:-1;;29001:32:44;;;;;;;28470:23;29001:32;;;;;28867:264;9256:54785;;;;;;-1:-1:-1;;;;;;;;;;;9256:54785:44;28455:12;29056:60;;28867:264;;;;29001:32;9256:54785;29001:32;;;:::i;:::-;;;;28739:34;28470:23;28765:8;;;;28639:28;;;;;;;28455:12;9256:54785;;28455:12;28289:936;:::o;28503:47::-;-1:-1:-1;28520:30:44;;-1:-1:-1;;28520:30:44:o;2497:406:41:-;5197:14;;;9256:54785:44;;;;;;;;;;;5197:26:41;2576:321;9256:54785:44;;;;;-1:-1:-1;;;9256:54785:44;;;;;;;;5197:14:41;9256:54785:44;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5197:14:41;2832:11;:::o;3071:1368::-;;3266:14;;;9256:54785:44;;;;;;;;;;;3302:13:41;;;3298:1135;3302:13;;;-1:-1:-1;;9256:54785:44;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;;;3777:23:41;;;3773:378;;3298:1135;9256:54785:44;;;;;;;;;-1:-1:-1;;9256:54785:44;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3266:14:41;4368:11;:::o;3773:378::-;9256:54785:44;3840:22:41;3961:23;3840:22;;;:::i;:::-;9256:54785:44;;;;;;3961:23:41;;;;;:::i;9256:54785:44:-;;;;;;;;;;;;3773:378:41;;;;;3298:1135;4410:12;;;;9256:54785:44;4410:12:41;:::o;7082:141:23:-;9256:54785:44;-1:-1:-1;;;;;;;;;;;9256:54785:44;;;;7148:18:23;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:23;;-1:-1:-1;7189:17:23"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","GOVERNOR_ROLE()":"ccc57490","MILLION()":"32bc934c","OPERATOR_ROLE()":"f5b541a6","PAUSE_ROLE()":"389ed267","distributeIssuance()":"49bdfcb0","distributePendingIssuance()":"3af5b073","distributePendingIssuance(uint256)":"52c0e18c","forceTargetNoChangeNotificationBlock(address,uint256)":"7c92330b","getDistributionState()":"ee56977e","getIssuancePerBlock()":"79d5fc54","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","getSelfMintingEventMode()":"93c911a8","getTargetAllocation(address)":"84c48422","getTargetAt(uint256)":"87ee921c","getTargetCount()":"4a1293b7","getTargetData(address)":"48c3c62e","getTargetIssuancePerBlock(address)":"3067cb4c","getTargets()":"63fe3b56","getTotalAllocation()":"15d3b5d8","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","notifyTarget(address)":"4887693c","pause()":"8456cb59","paused()":"5c975abb","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultTarget(address)":"697cf322","setDefaultTarget(address,uint256)":"d012a15b","setIssuancePerBlock(uint256)":"1156bdc1","setIssuancePerBlock(uint256,uint256)":"c627b7a4","setSelfMintingEventMode(uint8)":"13a7855d","setTargetAllocation(address,uint256)":"443990fa","setTargetAllocation(address,uint256,uint256)":"647b3682","setTargetAllocation(address,uint256,uint256,uint256)":"c2cb3544","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_graphToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultTarget\",\"type\":\"address\"}],\"name\":\"CannotSetAllocationForDefaultTarget\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"CannotSetDefaultToAllocatedTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GovernorCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTokenCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllocationAvailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"oldRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unallocated\",\"type\":\"uint256\"}],\"name\":\"InsufficientUnallocatedForRateDecrease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetAddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"TargetDoesNotSupportIIssuanceTarget\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxBlock\",\"type\":\"uint256\"}],\"name\":\"ToBlockOutOfRange\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DefaultTargetUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldIssuancePerBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"IssuancePerBlockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceSelfMintAllowance\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceSelfMintAllowanceAggregate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"oldMode\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"newMode\",\"type\":\"uint8\"}],\"name\":\"SelfMintingEventModeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetAfter\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"SelfMintingOffsetAccumulated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetAfter\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalForPeriod\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"SelfMintingOffsetReconciled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAllocatorMintingRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSelfMintingRate\",\"type\":\"uint256\"}],\"name\":\"TargetAllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MILLION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toBlockNumber\",\"type\":\"uint256\"}],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"forceTargetNoChangeNotificationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDistributionState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastDistributionBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastSelfMintingBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingOffset\",\"type\":\"uint256\"}],\"internalType\":\"struct DistributionState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIssuancePerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTargetAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastChangeNotifiedBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct AllocationTarget\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetIssuancePerBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceBlockAppliedTo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceBlockAppliedTo\",\"type\":\"uint256\"}],\"internalType\":\"struct TargetIssuancePerBlock\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"allocation\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"notifyTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"newMode\",\"type\":\"uint8\"}],\"name\":\"setSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program.\",\"details\":\"The contract maintains a 100% allocation invariant through a default target mechanism: - A default target exists at targetAddresses[0] (initialized to address(0)) - The default target automatically receives any unallocated portion of issuance - Total allocation across all targets always equals issuancePerBlock (tracked as absolute rates) - The default target address can be changed via setDefaultTarget() - When the default address is address(0), this 'unallocated' portion is not minted - Regular targets cannot be set as the default target addressThe contract supports two types of allocation for each target: 1. Allocator-minting allocation: The IssuanceAllocator calculates and mints tokens directly to targets    for this portion of their allocation. 2. Self-minting allocation: The IssuanceAllocator calculates issuance but does not mint tokens directly.    Instead, targets are expected to call `getTargetIssuancePerBlock` to determine their self-minting    issuance amount and mint tokens themselves. This feature is primarily intended for backwards    compatibility with existing contracts like the RewardsManager. Each target can have both allocator-minting and self-minting allocations. New targets are expected to use allocator-minting allocation to provide more robust control over token issuance through the IssuanceAllocator. The self-minting allocation is intended only for backwards compatibility with existing contracts.Pause Behavior: - Allocator-minting: Completely suspended during pause. No tokens minted, lastDistributionBlock frozen.   When unpaused, distributes retroactively using current rates for entire undistributed period. (Distribution will be triggered by calling distributeIssuance() when not paused.) - Self-minting: Continues tracking via events and accumulation during pause. Accumulated self-minting   reduces allocator-minting budget when distribution resumes, ensuring total issuance conservation. - Ongoing accumulation: Once accumulation starts (during pause), continues through any unpaused   periods until distribution clears it, preventing loss of self-minting allowances across pause cycles. - Tracking divergence: lastSelfMintingBlock advances during pause (for allowance tracking) while   lastDistributionBlock stays frozen (no allocator-minting). This is intentional and correct.Issuance Accounting Invariants: The contract maintains strict accounting to ensure total token issuance never exceeds the configured issuancePerBlock rate over any time period. This section provides the mathematical foundation for understanding the relationship between self-minting and allocator-minting. Key Invariants: 1. Allocation Completeness: For all blocks b, totalAllocatorRate_b + totalSelfMintingRate_b = issuancePerBlock_b    This ensures 100% of issuance is always allocated across all targets. 2. Self-Minting Accumulation: For any undistributed block range [fromBlock, toBlock]:    selfMintingOffset = \\u03a3(totalSelfMintingRate_b) for all b in range    where totalSelfMintingRate_b is the end-state rate for block b. 3. Rate Constraint: For all blocks b, totalSelfMintingRate_b \\u2264 issuancePerBlock_b    This follows from invariant (1) since 0 \\u2264 totalAllocatorRate_b. 4. Issuance Upper Bound: For any distribution period with blocks = toBlock - fromBlock + 1:    Let issuancePerBlock_final = current issuancePerBlock at distribution time    From invariants (2) and (3):      selfMintingOffset \\u2264 \\u03a3(issuancePerBlock_b)    Allocator-minting budget for period:      available = max(0, issuancePerBlock_final * blocks - selfMintingOffset)    Total minted (self + allocator) for period:      \\u2264 max(selfMintingOffset, issuancePerBlock_final * blocks)      \\u2264 \\u03a3(issuancePerBlock_b)    Therefore, total issuance never exceeds the sum of configured rates during the period. 5. Offset Reconciliation: During pending distribution, selfMintingOffset is adjusted to account for    the period's issuance budget. When distribution catches up to current block, the offset is cleared.    Any remaining offset when cleared represents self-minting that occurred beyond what the final    issuancePerBlock rate would allow for the period. This is acceptable because:    a) Self-minting targets were operating under rates that were valid at the time    b) The total minted still respects the \\u03a3(issuancePerBlock_b) bound (invariant 4)    c) Clearing the offset prevents it from affecting future distributions    d) The SelfMintingOffsetReconciled event provides visibility into all offset adjustments This design ensures that even when issuancePerBlock or allocation rates change over time, and even when self-minting targets mint independently, the total tokens minted never exceeds the sum of configured issuance rates during the period.There are a number of scenarios where the IssuanceAllocator could run into issues, including: 1. The targetAddresses array could grow large enough that it exceeds the gas limit when calling distributeIssuance. 2. When notifying targets of allocation changes the calls to `beforeIssuanceAllocationChange` could exceed the gas limit. 3. Target contracts could revert when notifying them of changes via `beforeIssuanceAllocationChange`. While in practice the IssuanceAllocator is expected to have a relatively small number of trusted targets, and the gas limit is expected to be high enough to handle the above scenarios, the following would allow recovery: 1. The contract can be paused, which can help make the recovery process easier to manage. 2. The GOVERNOR_ROLE can directly trigger change notification to individual targets. As there is per target    tracking of the lastChangeNotifiedBlock, this can reduce the gas cost of other operations and allow    for graceful recovery. 3. If a target reverts when notifying it of changes or notifying it is too expensive, the GOVERNOR_ROLE can use `forceTargetNoChangeNotificationBlock()`    to skip notifying that particular target of changes. In combination these should allow recovery from gas limit issues or malfunctioning targets, with fine-grained control over which targets are notified of changes and when.Reentrancy Protection: The contract code is designed to be reentrant-safe and should be carefully reviewed and maintained to preserve this property. However, reentrancy guards (using transient storage per EIP-1153) are applied to governance functions that modify configuration or state as an additional layer of defense. This provides protection against potential issues if the multi-sig governor role were to have known signatures that could be exploited by malicious actors to trigger reentrant calls. The `distributeIssuance()` function intentionally does NOT have a reentrancy guard to allow legitimate use cases where targets call it during notifications (e.g., to claim pending issuance before allocation changes). This is safe because distributeIssuance() has built-in block-tracking protection (preventing double-distribution in the same block), makes no external calls that could expose inconsistent state, and does not modify allocations.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CannotSetAllocationForDefaultTarget(address)\":[{\"params\":{\"defaultTarget\":\"The address of the default target\"}}],\"CannotSetDefaultToAllocatedTarget(address)\":[{\"params\":{\"target\":\"The target address that already has an allocation\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InsufficientAllocationAvailable(uint256,uint256)\":[{\"params\":{\"available\":\"The available budget for this target\",\"requested\":\"The total requested allocation (allocator + self minting)\"}}],\"InsufficientUnallocatedForRateDecrease(uint256,uint256,uint256)\":[{\"params\":{\"newRate\":\"The proposed new issuance rate\",\"oldRate\":\"The current issuance rate\",\"unallocated\":\"The unallocated budget available to absorb the decrease\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"TargetDoesNotSupportIIssuanceTarget(address)\":[{\"params\":{\"target\":\"The target address that doesn't support the interface\"}}],\"ToBlockOutOfRange(uint256,uint256,uint256)\":[{\"params\":{\"maxBlock\":\"The maximum valid block number (current block)\",\"minBlock\":\"The minimum valid block number (lastDistributionBlock)\",\"toBlock\":\"The invalid block number provided\"}}]},\"events\":{\"DefaultTargetUpdated(address,address)\":{\"params\":{\"newAddress\":\"The new default target address\",\"oldAddress\":\"The previous default target address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"IssuanceDistributed(address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens distributed\",\"fromBlock\":\"First block included in this distribution (inclusive)\",\"target\":\"The address of the target that received issuance\",\"toBlock\":\"Last block included in this distribution (inclusive). Range is [fromBlock, toBlock]\"}},\"IssuancePerBlockUpdated(uint256,uint256)\":{\"params\":{\"newIssuancePerBlock\":\"The new issuance per block amount\",\"oldIssuancePerBlock\":\"The previous issuance per block amount\"}},\"IssuanceSelfMintAllowance(address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens available for self-minting\",\"fromBlock\":\"First block included in this allowance period (inclusive)\",\"target\":\"The address of the target with self-minting allocation\",\"toBlock\":\"Last block included in this allowance period (inclusive). Range is [fromBlock, toBlock]\"}},\"IssuanceSelfMintAllowanceAggregate(uint256,uint256,uint256)\":{\"details\":\"This event is emitted when selfMintingEventMode is Aggregate, providing a single event instead of per-target events to reduce gas costs\",\"params\":{\"fromBlock\":\"First block included in this allowance period (inclusive)\",\"toBlock\":\"Last block included in this allowance period (inclusive)\",\"totalAmount\":\"The total amount of tokens available for self-minting across all targets\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SelfMintingEventModeUpdated(uint8,uint8)\":{\"params\":{\"newMode\":\"The new event emission mode\",\"oldMode\":\"The previous event emission mode\"}},\"SelfMintingOffsetAccumulated(uint256,uint256,uint256,uint256)\":{\"details\":\"This event provides visibility into offset growth during pause periods or while catching up after unpause. Together with SelfMintingOffsetReconciled, provides complete accounting of all offset changes.\",\"params\":{\"fromBlock\":\"First block in the accumulation period (inclusive)\",\"offsetAfter\":\"The self-minting offset after accumulation\",\"offsetBefore\":\"The self-minting offset before accumulation\",\"toBlock\":\"Last block in the accumulation period (inclusive)\"}},\"SelfMintingOffsetReconciled(uint256,uint256,uint256,uint256,uint256)\":{\"details\":\"This event provides visibility into the accounting reconciliation between self-minting and allocator-minting budgets during pending distribution. When offsetAfter is 0, the contract has fully caught up with distribution. When offsetAfter > 0, there remains accumulated offset that will be applied to future distributions.\",\"params\":{\"fromBlock\":\"First block in the distribution period (inclusive)\",\"offsetAfter\":\"The self-minting offset after reconciliation (0 when caught up to current block)\",\"offsetBefore\":\"The self-minting offset before reconciliation\",\"toBlock\":\"Last block in the distribution period (inclusive)\",\"totalForPeriod\":\"The total issuance budget for the distributed period\"}},\"TargetAllocationUpdated(address,uint256,uint256)\":{\"params\":{\"newAllocatorMintingRate\":\"The new allocator-minting rate (tokens per block) for the target\",\"newSelfMintingRate\":\"The new self-minting rate (tokens per block) for the target\",\"target\":\"The address of the target whose allocation was updated\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"This contract is upgradeable, but we use the constructor to pass the Graph Token address to the base contract.\",\"params\":{\"_graphToken\":\"Address of the Graph Token contract\"}},\"distributeIssuance()\":{\"details\":\"Implementation details: - For allocator-minting targets, tokens are minted and transferred directly to targets based on their allocation rate - For self-minting targets (like the legacy RewardsManager), it does not mint tokens directly. Instead, these contracts are expected to handle minting themselves - The self-minting allocation is intended only for backwards compatibility with existing contracts and should not be used for new targets. New targets should use allocator-minting allocation to ensure robust control of token issuance by the IssuanceAllocatorPause behavior: - When paused: Self-minting allowances tracked via events/accumulation, but no allocator-minting tokens distributed.   Returns lastDistributionBlock (frozen at pause point). lastSelfMintingBlock advances to current block. - When unpaused: Normal distribution if no accumulated self-minting, otherwise retroactive distribution   using current rates for entire undistributed period, with accumulated self-minting reducing allocator budget. - Unless paused, always advances lastDistributionBlock to block.number, even if no issuance to distribute.Reentrancy: This function intentionally does NOT have a reentrancy guard to allow targets to legitimately call it during notifications (e.g., to claim pending issuance before their allocation changes). This is safe because the function has built-in block-tracking protection that prevents double-distribution within the same block, makes no external calls that could expose inconsistent state, and does not modify allocations.\",\"returns\":{\"_0\":\"Block number that issuance has been distributed to. That will normally be the current block number, unless the contract is paused.\"}},\"distributePendingIssuance()\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to current block). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"returns\":{\"_0\":\"Block number that issuance was distributed up to\"}},\"distributePendingIssuance(uint256)\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to toBlockNumber). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"params\":{\"toBlockNumber\":\"Block number to distribute up to (must be <= block.number and >= lastDistributionBlock)\"},\"returns\":{\"_0\":\"Block number that issuance was distributed up to\"}},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"details\":\"Implementation details: - This can be used to enable notification to be sent again (by setting to a past block) or to prevent notification until a future block (by setting to current or future block) - Returns the block number that was set, always equal to blockNumber in current implementation\",\"params\":{\"blockNumber\":\"Block number to set as the lastChangeNotifiedBlock\",\"target\":\"Address of the target to update\"},\"returns\":{\"_0\":\"The block number that was set\"}},\"getDistributionState()\":{\"returns\":{\"_0\":\"DistributionState struct containing block tracking and accumulation info\"}},\"getIssuancePerBlock()\":{\"returns\":{\"_0\":\"The current issuance per block\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getSelfMintingEventMode()\":{\"returns\":{\"_0\":\"The current emission mode\"}},\"getTargetAllocation(address)\":{\"details\":\"Returns assigned allocation regardless of whether target is address(0) or the default.For address(0), no minting occurs but the allocation represents the unallocated portion.For effective allocations excluding unmintable portion, use getTotalAllocation().\",\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"Allocation struct containing total, allocator-minting, and self-minting allocations\"}},\"getTargetAt(uint256)\":{\"params\":{\"index\":\"The index of the target address to retrieve\"},\"returns\":{\"_0\":\"The target address at the specified index\"}},\"getTargetCount()\":{\"returns\":{\"_0\":\"The total number of allocated targets\"}},\"getTargetData(address)\":{\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"AllocationTarget struct containing target information including lastChangeNotifiedBlock\"}},\"getTargetIssuancePerBlock(address)\":{\"details\":\"Returns assigned issuance rates regardless of whether target is address(0) or the default.For address(0), no minting occurs but rates reflect what would be issued if mintable.selfIssuanceBlockAppliedTo reflects the last block for which self-minting allowances have been calculated and emitted (lastSelfMintingBlock). This advances continuously, unaffected by pause state.\",\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"TargetIssuancePerBlock struct containing allocatorIssuanceBlockAppliedTo, selfIssuanceBlockAppliedTo, allocatorIssuanceRate, and selfIssuanceRate\"}},\"getTargets()\":{\"returns\":{\"_0\":\"Array of target addresses\"}},\"getTotalAllocation()\":{\"details\":\"For reporting purposes, if the default target is address(0), its allocationis treated as \\\"unallocated\\\" since address(0) cannot receive minting.When default is address(0): returns actual allocated amounts (may be less than issuancePerBlock)When default is a real address: returns issuancePerBlockNote: Internally, the contract always maintains 100% allocation invariant, even when default is address(0)\",\"returns\":{\"allocation\":\"Allocation struct containing total, allocator-minting, and self-minting allocations across all targets\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"details\":\"Initializes with a default target at index 0 set to address(0)Default target will receive all unallocated issuance (initially 0 until rate is set)lastDistributionBlock is set to block.number as a safety guard against pausing before configuration. lastSelfMintingBlock defaults to 0. issuancePerBlock is 0. Once setIssuancePerBlock() is called, it triggers _distributeIssuance() which updates lastDistributionBlock to current block, establishing the starting point for issuance tracking.selfMintingEventMode is initialized to PerTarget\",\"params\":{\"_governor\":\"Address that will have the GOVERNOR_ROLE\"}},\"notifyTarget(address)\":{\"details\":\"Implementation details: - The target will be notified at most once per block to prevent reentrancy looping - Will revert if target notification reverts\",\"params\":{\"target\":\"Address of the target to notify\"},\"returns\":{\"_0\":\"True if notification was sent or already sent this block, false otherwise\"}},\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDefaultTarget(address)\":{\"params\":{\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"_0\":\"True if applied\"}},\"setDefaultTarget(address,uint256)\":{\"details\":\"Governance should explicitly call distributePendingIssuance(blockNumber) first if paused and distribution is not up to minDistributedBlock block. then call this function with the same or lower blockNumber.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"_0\":\"True if applied, false if distribution has not reached minDistributedBlock and therefore the change was not applied\"}},\"setIssuancePerBlock(uint256)\":{\"details\":\"Requires distribution to have reached block.number\",\"params\":{\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case)\"}},\"setIssuancePerBlock(uint256,uint256)\":{\"details\":\"Implementation details: - Requires distribution to have reached at least minDistributedBlock - This allows configuration changes after calling distributePendingIssuance(blockNumber) while paused - Only the default target is notified (target rates don't change, only default target changes) - Target rates stay fixed; default target absorbs the change - Whenever the rate is changed, the updateL2MintAllowance function _must_ be called on the L1GraphTokenGateway in L1, to ensure the bridge can mint the right amount of tokensRate changes while paused: The new rate applies retroactively to the entire undistributed period when distribution resumes. Governance must exercise caution to ensure rates are applied to the correct block range. Use distributePendingIssuance(blockNumber) to control precisely which block the new rate applies from.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock\"}},\"setSelfMintingEventMode(uint8)\":{\"details\":\"None: Skip event emission entirely (lowest gas)Aggregate: Emit single aggregated event for all self-minting (medium gas)PerTarget: Emit events for each target with self-minting (highest gas)Self-minting targets should call getTargetIssuancePerBlock() rather than relying on events\",\"params\":{\"newMode\":\"The new emission mode (None, Aggregate, or PerTarget)\"},\"returns\":{\"_0\":\"True if the mode was set (including if already set to that mode)\"}},\"setTargetAllocation(address,uint256)\":{\"details\":\"This variant sets selfMintingRate to 0 and evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256)\":{\"details\":\"This variant sets evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"details\":\"Implementation details: - Requires distribution has reached at least minDistributedBlock issuance to change allocation - This allows configuration changes while paused by being deliberate about which block to distribute to - If the new allocations are the same as the current allocations, this function is a no-op - If both allocations are 0 and the target doesn't exist, this function is a no-op - If both allocations are 0 and the target exists, the target will be removed - If any allocation is non-zero and the target doesn't exist, the target will be added - Will revert if the total allocation would exceed available capacity (default target + current target allocation) - Will revert if attempting to add a target that doesn't support IIssuanceTargetSelf-minting targets must call getTargetIssuancePerBlock to determine their issuance and mint accordingly. See contract header for details on self-minting vs allocator-minting allocation.\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock and therefore the change was not applied\"}},\"supportsInterface(bytes4)\":{\"details\":\"Supports the four IssuanceAllocator sub-interfaces\"},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"title\":\"IssuanceAllocator\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotSetAllocationForDefaultTarget(address)\":[{\"notice\":\"Thrown when attempting to set allocation for the default target\"}],\"CannotSetDefaultToAllocatedTarget(address)\":[{\"notice\":\"Thrown when attempting to set default target address to a normally allocated target\"}],\"GovernorCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the governor to the zero address\"}],\"GraphTokenCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the Graph Token to the zero address\"}],\"InsufficientAllocationAvailable(uint256,uint256)\":[{\"notice\":\"Thrown when the total allocation would exceed available budget\"}],\"InsufficientUnallocatedForRateDecrease(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when attempting to decrease issuance rate without sufficient unallocated budget\"}],\"TargetAddressCannotBeZero()\":[{\"notice\":\"Thrown when attempting to add a target with zero address\"}],\"TargetDoesNotSupportIIssuanceTarget(address)\":[{\"notice\":\"Thrown when a target does not support the IIssuanceTarget interface\"}],\"ToBlockOutOfRange(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when toBlockNumber is out of valid range for accumulation\"}]},\"events\":{\"DefaultTargetUpdated(address,address)\":{\"notice\":\"Emitted when the default target is updated\"},\"IssuanceDistributed(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when issuance is distributed to a target\"},\"IssuancePerBlockUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the issuance per block is updated\"},\"IssuanceSelfMintAllowance(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting allowance is calculated for a target\"},\"IssuanceSelfMintAllowanceAggregate(uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting allowance is calculated in aggregate mode\"},\"SelfMintingEventModeUpdated(uint8,uint8)\":{\"notice\":\"Emitted when self-minting event mode is changed\"},\"SelfMintingOffsetAccumulated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting offset accumulates during pause or catch-up\"},\"SelfMintingOffsetReconciled(uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting offset is reconciled during pending distribution\"},\"TargetAllocationUpdated(address,uint256,uint256)\":{\"notice\":\"Emitted when a target's allocation is updated\"}},\"kind\":\"user\",\"methods\":{\"GOVERNOR_ROLE()\":{\"notice\":\"Role identifier for governor accounts\"},\"MILLION()\":{\"notice\":\"One million - used as the denominator for values provided as Parts Per Million (PPM)\"},\"OPERATOR_ROLE()\":{\"notice\":\"Role identifier for operator accounts\"},\"PAUSE_ROLE()\":{\"notice\":\"Role identifier for pause accounts\"},\"constructor\":{\"notice\":\"Constructor for the IssuanceAllocator contract\"},\"distributeIssuance()\":{\"notice\":\"Distribute issuance to allocated non-self-minting targets.\"},\"distributePendingIssuance()\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance\"},\"distributePendingIssuance(uint256)\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance up to specified block\"},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"notice\":\"Force set the lastChangeNotifiedBlock for a target to a specific block number\"},\"getDistributionState()\":{\"notice\":\"Get pending issuance distribution state\"},\"getIssuancePerBlock()\":{\"notice\":\"Get the current issuance per block\"},\"getSelfMintingEventMode()\":{\"notice\":\"Get the current self-minting event emission mode\"},\"getTargetAllocation(address)\":{\"notice\":\"Get the current allocation for a target\"},\"getTargetAt(uint256)\":{\"notice\":\"Get a specific allocated target address by index\"},\"getTargetCount()\":{\"notice\":\"Get the number of allocated targets\"},\"getTargetData(address)\":{\"notice\":\"Get target data for a specific target\"},\"getTargetIssuancePerBlock(address)\":{\"notice\":\"Target issuance per block information\"},\"getTargets()\":{\"notice\":\"Get all allocated target addresses\"},\"getTotalAllocation()\":{\"notice\":\"Get the current global allocation totals\"},\"initialize(address)\":{\"notice\":\"Initialize the IssuanceAllocator contract\"},\"notifyTarget(address)\":{\"notice\":\"Notify a specific target about an upcoming allocation change\"},\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"setDefaultTarget(address)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setDefaultTarget(address,uint256)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setIssuancePerBlock(uint256)\":{\"notice\":\"Set the issuance per block.\"},\"setIssuancePerBlock(uint256,uint256)\":{\"notice\":\"Set the issuance per block, requiring distribution has reached at least the specified block\"},\"setSelfMintingEventMode(uint8)\":{\"notice\":\"Set the self-minting event emission mode\"},\"setTargetAllocation(address,uint256)\":{\"notice\":\"Set the allocation for a target with only allocator minting\"},\"setTargetAllocation(address,uint256,uint256)\":{\"notice\":\"Set the allocation for a target with both allocator and self minting\"},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"notice\":\"Set the allocation for a target, provided distribution has reached at least the specified block\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"This contract is responsible for allocating token issuance to different components of the protocol. It calculates issuance for all targets based on their configured rates (tokens per block) and handles minting for allocator-minting targets.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/allocate/IssuanceAllocator.sol\":\"IssuanceAllocator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol\":{\"keccak256\":\"0xb4d95a9c0ce489cd8df7f047dcbfc19c4a4ec9d05878b2bef4f3abd5fa4e91ef\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7923e80806cfbf8cf9d78c4de574b7e0a6c9f87b81702303b7170adf935ffb5c\",\"dweb:/ipfs/QmVVLV3jzxjS3HoRyg1C9hHcnWqV8ux1QaEwZgFKXrDu1X\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol\":{\"keccak256\":\"0x4c01f32e6a019dd5f8c3946b652c947a6cf05f9a4542328b3329a49f06b47181\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0db23b187a7b8b7263a9781f97bef15616df4d66fea2dc72541e6592bc18d73\",\"dweb:/ipfs/QmdJZhN1o8yc2yQjPKZrgySCdMUF6UeoprEbyvKtYTmnyw\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol\":{\"keccak256\":\"0x6927a5d307ac841444e03af363c41c7ba032693074614f0e3ee1e25c6f8789e1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://906d824aa38a6e6daa83f34cdfc1d9b0a9ff5f895b4a2083b9a7b7d5d8285397\",\"dweb:/ipfs/QmZCCSW7Nxtf3tLPnHazMhsyDPBBiAHqfzceGdb6CFNNEJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol\":{\"keccak256\":\"0xdeeda74ab0868b7dc38bb7719c09394fe4d652532978dfdbb72320486190bb29\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7bffd43fb18d81fea035b60f11a450806bef79221c22b92be72e9d23d9920f89\",\"dweb:/ipfs/QmbSBpkAhYb5Zm3ZPDPaHrqupTXu1sP2SY99NUGgvYeGXt\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0xe56ff5015046505f81f9d62671a784e933dd099db4c3a8fa8de598f20af2c5a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://355863359b4a250f7016836ef9a9672578e898503896f70a0d42b80141586f3e\",\"dweb:/ipfs/QmXXzvoMSFNQf8nRbcyRap5qzcbekWuzbXDY5C8f68JiG3\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"project/contracts/allocate/IssuanceAllocator.sol\":{\"keccak256\":\"0x92a7c7222c0fb46810379bad60580c696211a503eaeb9493f959cfc8bd15c0bb\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://777fc3a30931a34863ec9eccb5d0e1b4f501776a7d123924a541085d63142cc7\",\"dweb:/ipfs/QmcGV8gbi6L46PrN85crur8BBnu8eo44qiUTXYVbXBEqeP\"]},\"project/contracts/common/BaseUpgradeable.sol\":{\"keccak256\":\"0x78604bc34c8f141aeae60c342c88d3665ceb74787f9becfcb4847247cff4e79e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://28bd9105960c7c3769d5c27d8ba2d78afe8d55bd4baaccc9dcc0c26468e719ae\",\"dweb:/ipfs/QmSojY3oUAxUieyr67ggKdP2jdbfBQDsexkTdWt4t7jTM6\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]}},\"version\":1}"}},"project/contracts/common/BaseUpgradeable.sol":{"BaseUpgradeable":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","GOVERNOR_ROLE()":"ccc57490","MILLION()":"32bc934c","OPERATOR_ROLE()":"f5b541a6","PAUSE_ROLE()":"389ed267","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","pause()":"8456cb59","paused()":"5c975abb","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GovernorCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTokenCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MILLION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program.\",\"details\":\"This contract combines OpenZeppelin's AccessControlEnumerable and Pausable to provide a standardized way to manage access control and pausing functionality. Using AccessControlEnumerable (rather than base AccessControl) enables on-chain enumeration of role members via getRoleMemberCount() and getRoleMember(), which is useful for deployment verification and auditing. It uses ERC-7201 namespaced storage pattern for better storage isolation. This contract is abstract and meant to be inherited by other contracts.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"details\":\"This contract is upgradeable, but we use the constructor to set immutable variables and disable initializers to prevent the implementation contract from being initialized.\",\"params\":{\"graphToken\":\"Address of the Graph Token contract\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Adds support for IPausableControl interface\",\"params\":{\"interfaceId\":\"The interface identifier to check\"},\"returns\":{\"_0\":\"True if the contract supports the interface, false otherwise\"}},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"stateVariables\":{\"GOVERNOR_ROLE\":{\"details\":\"Governors have the highest level of access and can: - Grant and revoke roles within the established hierarchy - Perform administrative functions and system configuration - Set critical parameters and upgrade contracts Admin of: GOVERNOR_ROLE, PAUSE_ROLE, OPERATOR_ROLE\"},\"GRAPH_TOKEN\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MILLION\":{\"details\":\"This constant represents 1,000,000 and serves as the denominator when working with PPM values. For example, 50% would be represented as 500,000 PPM, calculated as (500,000 / MILLION) = 0.5 = 50%\"},\"OPERATOR_ROLE\":{\"details\":\"Operators can: - Perform operational tasks as defined by inheriting contracts - Manage roles that are designated as operator-administered Admin: GOVERNOR_ROLE\"},\"PAUSE_ROLE\":{\"details\":\"Pause role holders can: - Pause and unpause contract operations for emergency situations Typically granted to automated monitoring systems or emergency responders. Pausing is intended for quick response to potential threats, and giving time for investigation and resolution (potentially with governance intervention). Admin: GOVERNOR_ROLE\"}},\"title\":\"BaseUpgradeable\",\"version\":1},\"userdoc\":{\"errors\":{\"GovernorCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the governor to the zero address\"}],\"GraphTokenCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the Graph Token to the zero address\"}]},\"kind\":\"user\",\"methods\":{\"GOVERNOR_ROLE()\":{\"notice\":\"Role identifier for governor accounts\"},\"MILLION()\":{\"notice\":\"One million - used as the denominator for values provided as Parts Per Million (PPM)\"},\"OPERATOR_ROLE()\":{\"notice\":\"Role identifier for operator accounts\"},\"PAUSE_ROLE()\":{\"notice\":\"Role identifier for pause accounts\"},\"constructor\":{\"notice\":\"Constructor for the BaseUpgradeable contract\"},\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if this contract supports a given interface\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"A base contract that provides role-based access control and pausability.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/common/BaseUpgradeable.sol\":\"BaseUpgradeable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"project/contracts/common/BaseUpgradeable.sol\":{\"keccak256\":\"0x78604bc34c8f141aeae60c342c88d3665ceb74787f9becfcb4847247cff4e79e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://28bd9105960c7c3769d5c27d8ba2d78afe8d55bd4baaccc9dcc0c26468e719ae\",\"dweb:/ipfs/QmSojY3oUAxUieyr67ggKdP2jdbfBQDsexkTdWt4t7jTM6\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]}},\"version\":1}"}},"project/contracts/common/IGraphToken.sol":{"IGraphToken":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","mint(address,uint256)":"40c10f19","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Extends IERC20 with mint capability. This interface is compatible with OZ 5.x.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"mint(address,uint256)\":{\"details\":\"Only callable by accounts with minter role\",\"params\":{\"amount\":\"The amount of tokens to mint\",\"to\":\"The account to mint tokens to\"}},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"title\":\"IGraphToken\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mint(address,uint256)\":{\"notice\":\"Mints new tokens to a specified account\"}},\"notice\":\"Minimal interface for the Graph Token contract used by issuance contracts\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/common/IGraphToken.sol\":\"IGraphToken\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]}},\"version\":1}"}},"project/contracts/test/allocate/IssuanceAllocatorTestHarness.sol":{"IssuanceAllocatorTestHarness":{"abi":[{"inputs":[{"internalType":"address","name":"_graphToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"defaultTarget","type":"address"}],"name":"CannotSetAllocationForDefaultTarget","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"CannotSetDefaultToAllocatedTarget","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"GovernorCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"GraphTokenCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"uint256","name":"requested","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"InsufficientAllocationAvailable","type":"error"},{"inputs":[{"internalType":"uint256","name":"oldRate","type":"uint256"},{"internalType":"uint256","name":"newRate","type":"uint256"},{"internalType":"uint256","name":"unallocated","type":"uint256"}],"name":"InsufficientUnallocatedForRateDecrease","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"TargetAddressCannotBeZero","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"TargetDoesNotSupportIIssuanceTarget","type":"error"},{"inputs":[{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"uint256","name":"minBlock","type":"uint256"},{"internalType":"uint256","name":"maxBlock","type":"uint256"}],"name":"ToBlockOutOfRange","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"DefaultTargetUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldIssuancePerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"}],"name":"IssuancePerBlockUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceSelfMintAllowance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"IssuanceSelfMintAllowanceAggregate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum SelfMintingEventMode","name":"oldMode","type":"uint8"},{"indexed":false,"internalType":"enum SelfMintingEventMode","name":"newMode","type":"uint8"}],"name":"SelfMintingEventModeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"offsetBefore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"offsetAfter","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"SelfMintingOffsetAccumulated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"offsetBefore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"offsetAfter","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalForPeriod","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"fromBlock","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toBlock","type":"uint256"}],"name":"SelfMintingOffsetReconciled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"newAllocatorMintingRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSelfMintingRate","type":"uint256"}],"name":"TargetAllocationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVERNOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MILLION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toBlockNumber","type":"uint256"}],"name":"distributePendingIssuance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"allocatedRate","type":"uint256"},{"internalType":"uint256","name":"toBlockNumber","type":"uint256"}],"name":"exposedDistributePendingProportionally","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"allocatedTotal","type":"uint256"},{"internalType":"uint256","name":"toBlockNumber","type":"uint256"}],"name":"exposedDistributePendingWithFullRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"forceTargetNoChangeNotificationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDistributionState","outputs":[{"components":[{"internalType":"uint256","name":"lastDistributionBlock","type":"uint256"},{"internalType":"uint256","name":"lastSelfMintingBlock","type":"uint256"},{"internalType":"uint256","name":"selfMintingOffset","type":"uint256"}],"internalType":"struct DistributionState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIssuancePerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSelfMintingEventMode","outputs":[{"internalType":"enum SelfMintingEventMode","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTargetAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargetCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetData","outputs":[{"components":[{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"lastChangeNotifiedBlock","type":"uint256"}],"internalType":"struct AllocationTarget","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getTargetIssuancePerBlock","outputs":[{"components":[{"internalType":"uint256","name":"allocatorIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"allocatorIssuanceBlockAppliedTo","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceRate","type":"uint256"},{"internalType":"uint256","name":"selfIssuanceBlockAppliedTo","type":"uint256"}],"internalType":"struct TargetIssuancePerBlock","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalAllocation","outputs":[{"components":[{"internalType":"uint256","name":"totalAllocationRate","type":"uint256"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"internalType":"struct Allocation","name":"allocation","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governor","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"notifyTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setDefaultTarget","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newIssuancePerBlock","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setIssuancePerBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum SelfMintingEventMode","name":"newMode","type":"uint8"}],"name":"setSelfMintingEventMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IIssuanceTarget","name":"target","type":"address"},{"internalType":"uint256","name":"allocatorMintingRate","type":"uint256"},{"internalType":"uint256","name":"selfMintingRate","type":"uint256"},{"internalType":"uint256","name":"minDistributedBlock","type":"uint256"}],"name":"setTargetAllocation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60a03461012e57601f612def38819003918201601f19168301916001600160401b038311848410176101325780849260209460405283398101031261012e57516001600160a01b0381169081900361012e57801561011f576080525f516020612dcf5f395f51905f525460ff8160401c16610110576002600160401b03196001600160401b038216016100ba575b604051612c88908161014782396080518181816120670152818161214e0152818161228001526128f30152f35b6001600160401b0319166001600160401b039081175f516020612dcf5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61008d565b63f92ee8a960e01b5f5260045ffd5b6369e4eeb360e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611066575080631156bdc11461103757806313a7855d14610ffd57806315d3b5d814610f84578063248a9ca314610f665780632f2ff15d14610f355780633067cb4c14610e8d57806332bc934c14610e7057806336568abe14610e2c578063389ed26714610e055780633af5b07314610dda5780633f4ba83a14610d5c578063443990fa14610d1a5780634887693c14610ce757806348c3c62e14610c6157806349bdfcb014610c245780634a1293b714610bfe57806352c0e18c14610bb85780635c975abb14610b8a57806363fe3b5614610b21578063647b368214610adb578063697cf32214610aa657806379d5fc5414610a835780637c92330b14610a335780638456cb59146109b257806384c484221461095257806387ee921c146109295780639010d07c146108d857806391d148541461088357806393c911a814610855578063a217fddf1461083b578063a3246ad3146107bb578063c2cb354414610773578063c4d66de814610401578063c627b7a4146103d0578063ca15c8731461039a578063ccc5749014610373578063d012a15b14610322578063d48beb1b146102fd578063d547741f146102c7578063e038978e146102a3578063ee56977e146102335763f5b541a6146101f5575f80fd5b3461022f575f36600319011261022f5760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5f80fd5b3461022f575f36600319011261022f5761024b6112bb565b5060606102566115c3565b6001810154906003600282015491015490604051926102748461127d565b8352602083015260408201526102a160405180926040809180518452602081015160208501520151910152565bf35b3461022f57606036600319011261022f576102c56044356024356004356121ee565b005b3461022f57604036600319011261022f576102c56004356102e661114f565b906102f86102f3826112fa565b61144e565b61164d565b3461022f57608036600319011261022f576102c5606435604435602435600435611fe4565b3461022f57604036600319011261022f576020610359610340611165565b6103486113a9565b610350611494565b60243590611e6e565b5f5f516020612bf35f395f51905f525d6040519015158152f35b3461022f575f36600319011261022f5760206040515f516020612b735f395f51905f528152f35b3461022f57602036600319011261022f576004355f525f516020612b135f395f51905f52602052602060405f2054604051908152f35b3461022f57604036600319011261022f576103e96113a9565b6103f1611494565b60206103596024356004356114c9565b3461022f57602036600319011261022f5761041a611165565b5f516020612c335f395f51905f52549060ff8260401c16159167ffffffffffffffff81168015908161076b575b6001149081610761575b159081610758575b506107495767ffffffffffffffff1981166001175f516020612c335f395f51905f52558261071d575b5061048b612ac7565b610493612ac7565b6001600160a01b03811690811561070e575f516020612b735f395f51905f525f8181525f516020612b935f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556105f993929182905f516020612af35f395f51905f529080a45f516020612bd35f395f51905f525f8181525f516020612b935f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f516020612b735f395f51905f5291829055909290915f516020612af35f395f51905f529080a47f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9295f8181525f516020612b935f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f516020612b735f395f51905f5291829055909290915f516020612af35f395f51905f529080a4612355565b6106bc575b506106076115c3565b600581018054600160401b8110156106a8576106289160018201815561134b565b81549060018060a01b039060031b1b1916905560078101600260ff1982541617905560014391015561065657005b60ff60401b195f516020612c335f395f51905f5254165f516020612c335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b634e487b7160e01b5f52604160045260245ffd5b5f516020612b735f395f51905f525f525f516020612b135f395f51905f52602052610707907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e6129b3565b50816105fe565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f516020612c335f395f51905f525582610482565b63f92ee8a960e01b5f5260045ffd5b90501584610459565b303b159150610451565b849150610447565b3461022f57608036600319011261022f576020610359610791611165565b6107996113a9565b6107a1611494565b6064359060443590602435906001600160a01b0316611b07565b3461022f57602036600319011261022f576004355f525f516020612b135f395f51905f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110610825576108218561081581870382611299565b6040519182918261117b565b0390f35b82548452602090930192600192830192016107fe565b3461022f575f36600319011261022f5760206040515f8152f35b3461022f575f36600319011261022f57602060ff60076108736115c3565b0154166102a160405180926111bd565b3461022f57604036600319011261022f5761089c61114f565b6004355f525f516020612b935f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461022f57604036600319011261022f576004355f525f516020612b135f395f51905f52602052602061091060243560405f2061134b565b905460405160039290921b1c6001600160a01b03168152f35b3461022f57602036600319011261022f576020610910600435600561094c6115c3565b0161134b565b3461022f57602036600319011261022f5761096b611165565b6109736112bb565b50600461097e6115c3565b019060018060a01b03165f52602052606060405f20600181549101546109a48183611318565b91604051926102748461127d565b3461022f575f36600319011261022f576109ca6113f2565b5f516020612bb35f395f51905f525460ff8116610a245760019060ff1916175f516020612bb35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63d93c066560e01b5f5260045ffd5b3461022f57604036600319011261022f576020610a4e611165565b60243590610a5a6113a9565b6004610a646115c3565b019060018060a01b03165f52825280600260405f200155604051908152f35b3461022f575f36600319011261022f576020610a9d6115c3565b54604051908152f35b3461022f57602036600319011261022f576020610359610ac4611165565b610acc6113a9565b610ad4611494565b4390611e6e565b3461022f57606036600319011261022f576020610359610af9611165565b610b016113a9565b610b09611494565b439060443590602435906001600160a01b0316611b07565b3461022f575f36600319011261022f576005610b3b6115c3565b016040519081602082549182815201915f5260205f20905f5b818110610b6b576108218561081581870382611299565b82546001600160a01b0316845260209093019260019283019201610b54565b3461022f575f36600319011261022f57602060ff5f516020612bb35f395f51905f5254166040519015158152f35b3461022f57602036600319011261022f57610bd16113a9565b610bd9611494565b6020610be66004356116a2565b5f5f516020612bf35f395f51905f525d604051908152f35b3461022f575f36600319011261022f5760206005610c1a6115c3565b0154604051908152f35b3461022f575f36600319011261022f576001610c3e6115c3565b01544303610c52576020435b604051908152f35b6020610c5c611e24565b610c4a565b3461022f57602036600319011261022f57610c7a611165565b610c826112bb565b506004610c8d6115c3565b019060018060a01b03165f52602052606060405f20600260405191610cb18361127d565b8054835260018101546020840152015460408201526102a160405180926040809180518452602081015160208501520151910152565b3461022f57602036600319011261022f576020610359610d05611165565b610d0d6113a9565b610d15611494565b611d9f565b3461022f57604036600319011261022f576020610359610d38611165565b610d406113a9565b610d48611494565b4390602435906001600160a01b0316611857565b3461022f575f36600319011261022f57610d746113f2565b5f516020612bb35f395f51905f525460ff811615610dcb5760ff19165f516020612bb35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461022f575f36600319011261022f57610df26113a9565b610dfa611494565b6020610be6436116a2565b3461022f575f36600319011261022f5760206040515f516020612bd35f395f51905f528152f35b3461022f57604036600319011261022f57610e4561114f565b336001600160a01b03821603610e61576102c59060043561164d565b63334bd91960e11b5f5260045ffd5b3461022f575f36600319011261022f576020604051620f42408152f35b3461022f57602036600319011261022f576080610ea8611165565b5f6060604051610eb781611261565b8281528260208201528260408201520152610ed06115c3565b9060018060a01b03165f526004810160205260405f208054916002600180830154930154910154916060604051610f0681611261565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b3461022f57604036600319011261022f576102c5600435610f5461114f565b90610f616102f3826112fa565b611607565b3461022f57602036600319011261022f576020610c4a6004356112fa565b3461022f575f36600319011261022f576060610f9e6112bb565b610fd7610fa96115c3565b6006610fc582545f80526004840160205260405f2054906112d9565b918285520154908160408501526112d9565b60208201526102a160405180926040809180518452602081015160208501520151910152565b3461022f57602036600319011261022f57600435600381101561022f5761102d6020916110286113a9565b6111de565b6040519015158152f35b3461022f57602036600319011261022f576110506113a9565b611058611494565b6020610359436004356114c9565b3461022f57602036600319011261022f576004359063ffffffff60e01b821680920361022f57602091631e768dff60e21b811490811561113e575b811561112d575b811561111c575b81156110bd575b5015158152f35b631cf1473b60e31b8114915081156110d7575b50836110b6565b635a05180f60e01b8114915081156110f1575b50836110d0565b637965db0b60e01b81149150811561110b575b50836110ea565b6301ffc9a760e01b14905083611104565b632461e31760e11b811491506110af565b63a896602d60e01b811491506110a8565b6350d8541d60e01b811491506110a1565b602435906001600160a01b038216820361022f57565b600435906001600160a01b038216820361022f57565b60206040818301928281528451809452019201905f5b81811061119e5750505090565b82516001600160a01b0316845260209384019390920191600101611191565b9060038210156111ca5752565b634e487b7160e01b5f52602160045260245ffd5b60076111e86115c3565b019060ff82541660038110156111ca5760038210156111ca57808214611259576112536040927f3f59746e46bfb9af931035055d53b82d1b70968466065162b7dbf8e998aee6299460ff1981541660ff8316179055611249845180946111bd565b60208301906111bd565ba1600190565b505050600190565b6080810190811067ffffffffffffffff8211176106a857604052565b6060810190811067ffffffffffffffff8211176106a857604052565b90601f8019910116810190811067ffffffffffffffff8211176106a857604052565b604051906112c88261127d565b5f6040838281528260208201520152565b919082039182116112e657565b634e487b7160e01b5f52601160045260245ffd5b5f525f516020612b935f395f51905f52602052600160405f20015490565b919082018092116112e657565b805415611337575f5260205f20905f90565b634e487b7160e01b5f52603260045260245ffd5b8054821015611337575f5260205f2001905f90565b80549190600160401b8310156106a857826113839160016113a79501815561134b565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b565b335f9081525f516020612b335f395f51905f52602052604090205460ff16156113ce57565b63e2517d3f60e01b5f52336004525f516020612b735f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff161561142a57565b63e2517d3f60e01b5f52336004525f516020612bd35f395f51905f5260245260445ffd5b5f8181525f516020612b935f395f51905f526020908152604080832033845290915290205460ff161561147e5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f516020612bf35f395f51905f525c6114ba5760015f516020612bf35f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b6114d16115c3565b8054928383146115ba576114e3611e24565b106115b357611518600582016115126114fb82611325565b905460039190911b1c6001600160a01b0316611d9f565b50611325565b905460039190911b1c6001600160a01b03165f908152600482016020526040902080546115458185611318565b85116115995792849281926115867f2925be3e6d4b2cbcec6c06d5060fb3b53f160410555e45ee0a1f6dc7ae9b24c09761158185604099611318565b6112d9565b90555582519182526020820152a1600190565b8385632c421f2b60e21b5f5260045260245260445260645ffd5b5050505f90565b50505050600190565b604051602081017f109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd48152602082526115fc604083611299565b9051902060ff191690565b61161182826123ed565b918261161c57505090565b5f9182525f516020612b135f395f51905f526020526040909120611649916001600160a01b0316906129b3565b5090565b611657828261248b565b918261166257505090565b5f9182525f516020612b135f395f51905f526020526040909120611649916001600160a01b031690612a16565b818102929181159184041417156112e657565b6116aa612527565b6116b26115c3565b600181018054838111158061184d575b15611833576116d190846112d9565b91821561182d57838154926116e6858561168f565b92826003820154958587105f146118265761170187876112d9565b925b836117a8575b50505050556117166115c3565b9043850361178a575f935b848403611734575b505060039150015590565b61173e90866112d9565b600181018091116112e6577f1a45018bdab6039c806fac73d617b3bc5c6a2a0f22f6f90d2ca202b083087f99606060039588946040519182528860208301526040820152a35f80611729565b828110156117a25761179c81846112d9565b93611721565b5f61179c565b6117e86117f0926117bb60058401611325565b905460039190911b1c6001600160a01b03165f9081526004840160205260409020600690930154906112d9565b9054906112d9565b6117fa888261168f565b80841015611815575061180c926121ee565b5f828180611709565b90506118219288611fe4565b61180c565b5f92611703565b50505090565b8363a0d2b9db60e01b5f526004526024524360445260645ffd5b50438411156116c2565b90916118645f848461270d565b1561125957611871611e24565b10611b015761187f81611d9f565b506118966114fb60056118906115c3565b01611325565b5061189f6115c3565b600481019060018060a01b0383165f528160205260405f20916118c460058301611325565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611903916001916118f891611318565b940193845490611318565b808611611aeb579160069161191b87611929956112d9565b9055019182549054906112d9565b90556119336115c3565b6001600160a01b0382165f9081526004820160205260409020908315801590611ae4575b156119c257915f6001835f516020612c135f395f51905f5295846040965415806119b7575b6119a4575b505086815501555b81519384525f60208501526001600160a01b031692a2600190565b60056119b09201611360565b5f84611981565b50838301541561197c565b5050906119cd6115c3565b916001600160a01b03811690600584019060015b825480821015611ac657846119f6838661134b565b905460039190911b1c6001600160a01b031614611a1657506001016119e1565b905f9692939495961982019182116112e657611383611a38611a51938761134b565b905460039190911b1c6001600160a01b0316918661134b565b8254908115611ab2575f516020612c135f395f51905f52946040946004935f190190611a95611a80838361134b565b81549060018060a01b039060031b1b19169055565b555f52016020525f60028382208281558260018201550155611989565b634e487b7160e01b5f52603160045260245ffd5b505090505f516020612c135f395f51905f5292935060409150611989565b505f611957565b8563162930e360e11b5f5260045260245260445ffd5b50505f90565b92919091611b1682848661270d565b156115ba57611b23611e24565b106115b357611b3183611d9f565b50611b426114fb60056118906115c3565b50611b4b6115c3565b600481019060018060a01b0385165f528160205260405f2091611b7060058301611325565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611ba4916001916118f891611318565b80611baf8688611318565b11611bba8688611318565b90611d8a57506006611bec938693611bd9856115818b611be7976112d9565b9055019384549054906112d9565b611318565b9055611bf66115c3565b6001600160a01b0384165f9081526004820160205260409020908315801590611d81575b15611c86579180600183604095885f516020612c135f395f51905f52989996541580611c7b575b611c68575b505087815501555b825194855260208501526001600160a01b031692a2600190565b6005611c749201611360565b5f85611c46565b508383015415611c41565b505091611c916115c3565b926001600160a01b03821691600585019160015b835480821015611d625785611cba838761134b565b905460039190911b1c6001600160a01b031614611cda5750600101611ca5565b905f979293949596971982019182116112e657611383611cfd611d16938861134b565b905460039190911b1c6001600160a01b0316918761134b565b8354908115611ab2575f516020612c135f395f51905f52956040956004935f190190611d45611a80838361134b565b555f52016020525f60028482208281558260018201550155611c4e565b50509091505f516020612c135f395f51905f5293945060409250611c4e565b50821515611c1a565b63162930e360e11b5f5260045260245260445ffd5b6001600160a01b03168015611dfc576004611db86115c3565b01815f52602052600260405f20018054431115611e1d57439055803b1561022f575f8091600460405180948193631efc6b4160e11b83525af18015611e1257611e02575b50600190565b5f611e0c91611299565b5f611dfc565b6040513d5f823e3d90fd5b5050600190565b611e2c6115c3565b611e34612527565b60ff5f516020612bb35f395f51905f525416611e67576003015415611e5f57611e5c436116a2565b90565b611e5c612859565b6001015490565b611e766115c3565b906005820190611e8582611325565b90546001600160a01b038381169660039390931b9190911c169390858514611fd957835460015b818110611f9c575050611ebd611e24565b10611f93576004611ef691611ed186611d9f565b50611edb84611d9f565b500191855f5282602052611383600260405f20015494611325565b6001600160a01b0383165f90815260208290526040808220868352912090808203611f75575b505060018060a01b0383165f52806020525f6002604082208281558260018201550155835f52602052600260405f2001557ef06471e88e0bc1db6b6126efdb09f80b597e6ddc145ff0dcabd12afab4ec575f80a3600190565b60028181925484556001810154600185015501549101555f80611f1c565b50505050505f90565b87611fa7828861134b565b905460039190911b1c6001600160a01b031614611fc657600101611eac565b8763f158185d60e01b5f5260045260245ffd5b505050505050600190565b939093929192611ff26115c3565b600181015492600184018094116112e657600196956004600584019301975b835481101561210b57612024818561134b565b905460039190911b1c6001600160a01b03165f81815260208b9052604090205490919086908061205b575b50506001915001612011565b906120659161168f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561022f576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af1918215611e12575f516020612b535f395f51905f5260208b936001978e966120fb575b50604051908152a4855f61204f565b5f61210591611299565b5f6120ec565b509193949590965061211d92506112d9565b908161212a575b50505050565b61213390611325565b905460039190911b1c6001600160a01b0316908115612124577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561022f576040516340c10f1960e01b81526001600160a01b038416600482015260248101829052915f908390604490829084905af1908115611e12575f516020612b535f395f51905f52926020926121de575b50604051908152a45f808080612124565b5f6121e891611299565b5f6121cd565b9190916121f96115c3565b92801580801561234d575b61234657600185015492600184018094116112e65760048601969560050160015b815481101561233b57612238818361134b565b905460039190911b1c6001600160a01b03165f81815260208b9052604090205490919085908061226f575b50506001915001612225565b612279908661168f565b90612327577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290879004833b1561022f576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af1918215611e12575f516020612b535f395f51905f5260208b936001978e96612317575b50604051908152a4845f612263565b5f61232191611299565b5f612308565b634e487b7160e01b5f52601260045260245ffd5b505050505050509050565b5050505050565b508215612204565b6001600160a01b0381165f9081525f516020612b335f395f51905f52602052604090205460ff166123e8576001600160a01b03165f8181525f516020612b335f395f51905f5260205260408120805460ff191660011790553391905f516020612b735f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611b01575f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611b01575f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b61252f6115c3565b600281019081544381146127085761254781436112d9565b92600182018092116112e6576003830180549060ff5f516020612bb35f395f51905f52541680156126ff575b6126a4575b505043905560068201548061258d5750505050565b60ff60078401541660038110156111ca576002810361265057505060058201805493600490930192905f5b8581106125cf575050505050505b5f808080612124565b806125dc6001928461134b565b838060a01b0391549060031b1c16828060a01b0381165f5286602052858360405f2001548681612611575b50505050016125b8565b61261a9161168f565b916040519283527fa34db09d4126dd8dcd1d29f3df65c01dcac405127546e380add77fedca459ba760204394a45f858186612607565b919390925090600114612666575b5050506125c6565b61266f9161168f565b906040519182527fcef44ce1a1fc7ca1f3078daf79d3b60646d0e751bc72a69bff12f66c4aef3b8d60204393a35f808061265e565b6126bb6126b587600688015461168f565b83611318565b80915580820315612578576040519182526020820152827f0539ce444a515b8aa8769802297761fbec80b5b543c617714bf5e0611cf669db60404393a35f80612578565b50811515612573565b505050565b6001600160a01b03169190821561284a576127266115c3565b6005810161275061273682611325565b905460039190911b1c6001600160a01b0316861491611325565b905460039190911b1c6001600160a01b0316906128385750600490845f520160205260405f208282825414918261282a575b50506115b3571590811591612820575b5061279d5750600190565b6040516301ffc9a760e01b815263aee4dc4360e01b6004820152602081602481855afa908115611e12575f916127e5575b50611dfc5763a5fe861560e01b5f5260045260245ffd5b90506020813d602011612818575b8161280060209383611299565b8101031261022f5751801515810361022f575f6127ce565b3d91506127f3565b905015155f612792565b60010154149050825f612782565b63fda6c18760e01b5f5260045260245ffd5b6322a4ec7b60e11b5f5260045ffd5b6128616115c3565b90600182019182549061287482436112d9565b9081156129ac57600183018093116112e6575f94936004600583019201955b825481101561299f576128a6818461134b565b905460039190911b1c6001600160a01b03169081156129965760018060a01b0382165f52876020528460405f2054806128e7575b5050600191505b01612893565b906128f19161168f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692833b1561022f576040516340c10f1960e01b81526001600160a01b038216600482015260248101839052935f908590604490829084905af1908115611e12576001948992612986575b506040519283525f516020612b535f395f51905f5260204394a4845f6128da565b5f61299091611299565b5f612965565b600191506128e1565b5094505050504390554390565b5090925050565b6001810190825f528160205260405f2054155f146115b3578054600160401b8110156106a857612a036129ed82600187940185558461134b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b906001820191815f528260205260405f20548015155f14612abf575f1981018181116112e65782545f198101919082116112e657818103612a8a575b50505080548015611ab2575f190190612a6b828261134b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b612aaa612a9a6129ed938661134b565b90549060031b1c9283928661134b565b90555f528360205260405f20555f8080612a52565b505050505f90565b60ff5f516020612c335f395f51905f525460401c1615612ae357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8030c56d855d8df534c916b78eac3522e5fafd59f48799c4a97d42e80f6e08989607935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5502dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001bd3f0d2f1001a856d81215ceb86c548bdbc3bf52480a08978f8c3ea6e2bd421f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d46b54882b4d4a139f908e1d4575b13fb4288eda84825de64ac62fbf8e30007664736f6c63430008210033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","opcodes":"PUSH1 0xA0 CALLVALUE PUSH2 0x12E JUMPI PUSH1 0x1F PUSH2 0x2DEF CODESIZE DUP2 SWAP1 SUB SWAP2 DUP3 ADD PUSH1 0x1F NOT AND DUP4 ADD SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT DUP5 DUP5 LT OR PUSH2 0x132 JUMPI DUP1 DUP5 SWAP3 PUSH1 0x20 SWAP5 PUSH1 0x40 MSTORE DUP4 CODECOPY DUP2 ADD SUB SLT PUSH2 0x12E JUMPI MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x12E JUMPI DUP1 ISZERO PUSH2 0x11F JUMPI PUSH1 0x80 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2DCF PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 PUSH1 0x40 SHR AND PUSH2 0x110 JUMPI PUSH1 0x2 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND ADD PUSH2 0xBA JUMPI JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C88 SWAP1 DUP2 PUSH2 0x147 DUP3 CODECOPY PUSH1 0x80 MLOAD DUP2 DUP2 DUP2 PUSH2 0x2067 ADD MSTORE DUP2 DUP2 PUSH2 0x214E ADD MSTORE DUP2 DUP2 PUSH2 0x2280 ADD MSTORE PUSH2 0x28F3 ADD MSTORE RETURN JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2DCF PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 SWAP1 LOG1 PUSH0 PUSH2 0x8D JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH4 0x69E4EEB3 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x1066 JUMPI POP DUP1 PUSH4 0x1156BDC1 EQ PUSH2 0x1037 JUMPI DUP1 PUSH4 0x13A7855D EQ PUSH2 0xFFD JUMPI DUP1 PUSH4 0x15D3B5D8 EQ PUSH2 0xF84 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF66 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xF35 JUMPI DUP1 PUSH4 0x3067CB4C EQ PUSH2 0xE8D JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0xE70 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xE2C JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0xE05 JUMPI DUP1 PUSH4 0x3AF5B073 EQ PUSH2 0xDDA JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xD5C JUMPI DUP1 PUSH4 0x443990FA EQ PUSH2 0xD1A JUMPI DUP1 PUSH4 0x4887693C EQ PUSH2 0xCE7 JUMPI DUP1 PUSH4 0x48C3C62E EQ PUSH2 0xC61 JUMPI DUP1 PUSH4 0x49BDFCB0 EQ PUSH2 0xC24 JUMPI DUP1 PUSH4 0x4A1293B7 EQ PUSH2 0xBFE JUMPI DUP1 PUSH4 0x52C0E18C EQ PUSH2 0xBB8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB8A JUMPI DUP1 PUSH4 0x63FE3B56 EQ PUSH2 0xB21 JUMPI DUP1 PUSH4 0x647B3682 EQ PUSH2 0xADB JUMPI DUP1 PUSH4 0x697CF322 EQ PUSH2 0xAA6 JUMPI DUP1 PUSH4 0x79D5FC54 EQ PUSH2 0xA83 JUMPI DUP1 PUSH4 0x7C92330B EQ PUSH2 0xA33 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0x84C48422 EQ PUSH2 0x952 JUMPI DUP1 PUSH4 0x87EE921C EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x8D8 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0x93C911A8 EQ PUSH2 0x855 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xC2CB3544 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xC627B7A4 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xD012A15B EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xD48BEB1B EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xE038978E EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xEE56977E EQ PUSH2 0x233 JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x1F5 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x24B PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x60 PUSH2 0x256 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD SWAP2 ADD SLOAD SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x274 DUP5 PUSH2 0x127D JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x21EE JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x4 CALLDATALOAD PUSH2 0x2E6 PUSH2 0x114F JUMP JUMPDEST SWAP1 PUSH2 0x2F8 PUSH2 0x2F3 DUP3 PUSH2 0x12FA JUMP JUMPDEST PUSH2 0x144E JUMP JUMPDEST PUSH2 0x164D JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x64 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x1FE4 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0x340 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x348 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x1E6E JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x3E9 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x3F1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x359 PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x14C9 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x41A PUSH2 0x1165 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x76B JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x761 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x758 JUMPI JUMPDEST POP PUSH2 0x749 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x71D JUMPI JUMPDEST POP PUSH2 0x48B PUSH2 0x2AC7 JUMP JUMPDEST PUSH2 0x493 PUSH2 0x2AC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x70E JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x5F9 SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0x2355 JUMP JUMPDEST PUSH2 0x6BC JUMPI JUMPDEST POP PUSH2 0x607 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x628 SWAP2 PUSH1 0x1 DUP3 ADD DUP2 SSTORE PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE PUSH1 0x7 DUP2 ADD PUSH1 0x2 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH1 0x1 NUMBER SWAP2 ADD SSTORE PUSH2 0x656 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x707 SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0x29B3 JUMP JUMPDEST POP DUP2 PUSH2 0x5FE JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x459 JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x451 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x447 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0x791 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x799 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x7A1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B07 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x825 JUMPI PUSH2 0x821 DUP6 PUSH2 0x815 DUP2 DUP8 SUB DUP3 PUSH2 0x1299 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x117B JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x7FE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0xFF PUSH1 0x7 PUSH2 0x873 PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD AND PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH2 0x11BD JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x89C PUSH2 0x114F JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x910 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x910 PUSH1 0x4 CALLDATALOAD PUSH1 0x5 PUSH2 0x94C PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH2 0x134B JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x96B PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x973 PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x97E PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x1 DUP2 SLOAD SWAP2 ADD SLOAD PUSH2 0x9A4 DUP2 DUP4 PUSH2 0x1318 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x274 DUP5 PUSH2 0x127D JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x9CA PUSH2 0x13F2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND PUSH2 0xA24 JUMPI PUSH1 0x1 SWAP1 PUSH1 0xFF NOT AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xA4E PUSH2 0x1165 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0xA5A PUSH2 0x13A9 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA64 PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xA9D PUSH2 0x15C3 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xAC4 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xACC PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xAD4 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH2 0x1E6E JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xAF9 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xB01 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xB09 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B07 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x5 PUSH2 0xB3B PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0xB6B JUMPI PUSH2 0x821 DUP6 PUSH2 0x815 DUP2 DUP8 SUB DUP3 PUSH2 0x1299 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xB54 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xBD1 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xBD9 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xBE6 PUSH1 0x4 CALLDATALOAD PUSH2 0x16A2 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x5 PUSH2 0xC1A PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x1 PUSH2 0xC3E PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD NUMBER SUB PUSH2 0xC52 JUMPI PUSH1 0x20 NUMBER JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x20 PUSH2 0xC5C PUSH2 0x1E24 JUMP JUMPDEST PUSH2 0xC4A JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xC7A PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xC82 PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0xC8D PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x2 PUSH1 0x40 MLOAD SWAP2 PUSH2 0xCB1 DUP4 PUSH2 0x127D JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x20 DUP5 ADD MSTORE ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xD05 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xD0D PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xD15 PUSH2 0x1494 JUMP JUMPDEST PUSH2 0x1D9F JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xD38 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xD48 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1857 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xD74 PUSH2 0x13F2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xDCB JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xDF2 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xDFA PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xBE6 NUMBER PUSH2 0x16A2 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xE45 PUSH2 0x114F JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0xE61 JUMPI PUSH2 0x2C5 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x164D JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x80 PUSH2 0xEA8 PUSH2 0x1165 JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xEB7 DUP2 PUSH2 0x1261 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE PUSH2 0xED0 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x4 DUP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP1 SLOAD SWAP2 PUSH1 0x2 PUSH1 0x1 DUP1 DUP4 ADD SLOAD SWAP4 ADD SLOAD SWAP2 ADD SLOAD SWAP2 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xF06 DUP2 PUSH2 0x1261 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 DUP4 MSTORE PUSH1 0x40 DUP2 ADD SWAP4 DUP5 MSTORE ADD SWAP3 DUP4 MSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE MLOAD PUSH1 0x20 DUP5 ADD MSTORE MLOAD PUSH1 0x40 DUP4 ADD MSTORE MLOAD PUSH1 0x60 DUP3 ADD MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x4 CALLDATALOAD PUSH2 0xF54 PUSH2 0x114F JUMP JUMPDEST SWAP1 PUSH2 0xF61 PUSH2 0x2F3 DUP3 PUSH2 0x12FA JUMP JUMPDEST PUSH2 0x1607 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xC4A PUSH1 0x4 CALLDATALOAD PUSH2 0x12FA JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x60 PUSH2 0xF9E PUSH2 0x12BB JUMP JUMPDEST PUSH2 0xFD7 PUSH2 0xFA9 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x6 PUSH2 0xFC5 DUP3 SLOAD PUSH0 DUP1 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 DUP3 DUP6 MSTORE ADD SLOAD SWAP1 DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x22F JUMPI PUSH2 0x102D PUSH1 0x20 SWAP2 PUSH2 0x1028 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x11DE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x1050 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x1058 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x359 NUMBER PUSH1 0x4 CALLDATALOAD PUSH2 0x14C9 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x22F JUMPI PUSH1 0x20 SWAP2 PUSH4 0x1E768DFF PUSH1 0xE2 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x113E JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x112D JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x111C JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10BD JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10D7 JUMPI JUMPDEST POP DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10F1 JUMPI JUMPDEST POP DUP4 PUSH2 0x10D0 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x110B JUMPI JUMPDEST POP DUP4 PUSH2 0x10EA JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x1104 JUMP JUMPDEST PUSH4 0x2461E317 PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x10AF JUMP JUMPDEST PUSH4 0xA896602D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x10A8 JUMP JUMPDEST PUSH4 0x50D8541D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x22F JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x22F JUMPI JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 DUP2 DUP4 ADD SWAP3 DUP3 DUP2 MSTORE DUP5 MLOAD DUP1 SWAP5 MSTORE ADD SWAP3 ADD SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x119E JUMPI POP POP POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1191 JUMP JUMPDEST SWAP1 PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x11CA JUMPI MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x7 PUSH2 0x11E8 PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0xFF DUP3 SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x11CA JUMPI PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP1 DUP3 EQ PUSH2 0x1259 JUMPI PUSH2 0x1253 PUSH1 0x40 SWAP3 PUSH32 0x3F59746E46BFB9AF931035055D53B82D1B70968466065162B7DBF8E998AEE629 SWAP5 PUSH1 0xFF NOT DUP2 SLOAD AND PUSH1 0xFF DUP4 AND OR SWAP1 SSTORE PUSH2 0x1249 DUP5 MLOAD DUP1 SWAP5 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x11BD JUMP JUMPDEST LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x60 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x12C8 DUP3 PUSH2 0x127D JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x12E6 JUMPI JUMP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x1337 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x1337 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST DUP1 SLOAD SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL DUP4 LT ISZERO PUSH2 0x6A8 JUMPI DUP3 PUSH2 0x1383 SWAP2 PUSH1 0x1 PUSH2 0x13A7 SWAP6 ADD DUP2 SSTORE PUSH2 0x134B JUMP JUMPDEST SWAP1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL DUP4 DUP2 SHL NOT SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP4 AND SWAP1 SWAP3 SHL OR SWAP1 SSTORE JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13CE JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x142A JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x147E JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TLOAD PUSH2 0x14BA JUMPI PUSH1 0x1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE JUMP JUMPDEST PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x14D1 PUSH2 0x15C3 JUMP JUMPDEST DUP1 SLOAD SWAP3 DUP4 DUP4 EQ PUSH2 0x15BA JUMPI PUSH2 0x14E3 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x15B3 JUMPI PUSH2 0x1518 PUSH1 0x5 DUP3 ADD PUSH2 0x1512 PUSH2 0x14FB DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1545 DUP2 DUP6 PUSH2 0x1318 JUMP JUMPDEST DUP6 GT PUSH2 0x1599 JUMPI SWAP3 DUP5 SWAP3 DUP2 SWAP3 PUSH2 0x1586 PUSH32 0x2925BE3E6D4B2CBCEC6C06D5060FB3B53F160410555E45EE0A1F6DC7AE9B24C0 SWAP8 PUSH2 0x1581 DUP6 PUSH1 0x40 SWAP10 PUSH2 0x1318 JUMP JUMPDEST PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP4 DUP6 PUSH4 0x2C421F2B PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH32 0x109CDEB08B6FCB52A0F8A35AF1BF023AFDACDC6E602B08424B2171D0F4FA3CD4 DUP2 MSTORE PUSH1 0x20 DUP3 MSTORE PUSH2 0x15FC PUSH1 0x40 DUP4 PUSH2 0x1299 JUMP JUMPDEST SWAP1 MLOAD SWAP1 KECCAK256 PUSH1 0xFF NOT AND SWAP1 JUMP JUMPDEST PUSH2 0x1611 DUP3 DUP3 PUSH2 0x23ED JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x161C JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x1649 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x29B3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x1657 DUP3 DUP3 PUSH2 0x248B JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x1662 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x1649 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2A16 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x12E6 JUMPI JUMP JUMPDEST PUSH2 0x16AA PUSH2 0x2527 JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SLOAD DUP4 DUP2 GT ISZERO DUP1 PUSH2 0x184D JUMPI JUMPDEST ISZERO PUSH2 0x1833 JUMPI PUSH2 0x16D1 SWAP1 DUP5 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 DUP3 ISZERO PUSH2 0x182D JUMPI DUP4 DUP2 SLOAD SWAP3 PUSH2 0x16E6 DUP6 DUP6 PUSH2 0x168F JUMP JUMPDEST SWAP3 DUP3 PUSH1 0x3 DUP3 ADD SLOAD SWAP6 DUP6 DUP8 LT PUSH0 EQ PUSH2 0x1826 JUMPI PUSH2 0x1701 DUP8 DUP8 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 JUMPDEST DUP4 PUSH2 0x17A8 JUMPI JUMPDEST POP POP POP POP SSTORE PUSH2 0x1716 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 NUMBER DUP6 SUB PUSH2 0x178A JUMPI PUSH0 SWAP4 JUMPDEST DUP5 DUP5 SUB PUSH2 0x1734 JUMPI JUMPDEST POP POP PUSH1 0x3 SWAP2 POP ADD SSTORE SWAP1 JUMP JUMPDEST PUSH2 0x173E SWAP1 DUP7 PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x12E6 JUMPI PUSH32 0x1A45018BDAB6039C806FAC73D617B3BC5C6A2A0F22F6F90D2CA202B083087F99 PUSH1 0x60 PUSH1 0x3 SWAP6 DUP9 SWAP5 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE DUP9 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG3 PUSH0 DUP1 PUSH2 0x1729 JUMP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x17A2 JUMPI PUSH2 0x179C DUP2 DUP5 PUSH2 0x12D9 JUMP JUMPDEST SWAP4 PUSH2 0x1721 JUMP JUMPDEST PUSH0 PUSH2 0x179C JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x17F0 SWAP3 PUSH2 0x17BB PUSH1 0x5 DUP5 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST PUSH2 0x17FA DUP9 DUP3 PUSH2 0x168F JUMP JUMPDEST DUP1 DUP5 LT ISZERO PUSH2 0x1815 JUMPI POP PUSH2 0x180C SWAP3 PUSH2 0x21EE JUMP JUMPDEST PUSH0 DUP3 DUP2 DUP1 PUSH2 0x1709 JUMP JUMPDEST SWAP1 POP PUSH2 0x1821 SWAP3 DUP9 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0x180C JUMP JUMPDEST PUSH0 SWAP3 PUSH2 0x1703 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST DUP4 PUSH4 0xA0D2B9DB PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE NUMBER PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP NUMBER DUP5 GT ISZERO PUSH2 0x16C2 JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x1864 PUSH0 DUP5 DUP5 PUSH2 0x270D JUMP JUMPDEST ISZERO PUSH2 0x1259 JUMPI PUSH2 0x1871 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x1B01 JUMPI PUSH2 0x187F DUP2 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1896 PUSH2 0x14FB PUSH1 0x5 PUSH2 0x1890 PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH2 0x1325 JUMP JUMPDEST POP PUSH2 0x189F PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x18C4 PUSH1 0x5 DUP4 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1903 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x18F8 SWAP2 PUSH2 0x1318 JUMP JUMPDEST SWAP5 ADD SWAP4 DUP5 SLOAD SWAP1 PUSH2 0x1318 JUMP JUMPDEST DUP1 DUP7 GT PUSH2 0x1AEB JUMPI SWAP2 PUSH1 0x6 SWAP2 PUSH2 0x191B DUP8 PUSH2 0x1929 SWAP6 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE ADD SWAP2 DUP3 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1933 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1AE4 JUMPI JUMPDEST ISZERO PUSH2 0x19C2 JUMPI SWAP2 PUSH0 PUSH1 0x1 DUP4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 DUP5 PUSH1 0x40 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x19B7 JUMPI JUMPDEST PUSH2 0x19A4 JUMPI JUMPDEST POP POP DUP7 DUP2 SSTORE ADD SSTORE JUMPDEST DUP2 MLOAD SWAP4 DUP5 MSTORE PUSH0 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x19B0 SWAP3 ADD PUSH2 0x1360 JUMP JUMPDEST PUSH0 DUP5 PUSH2 0x1981 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x197C JUMP JUMPDEST POP POP SWAP1 PUSH2 0x19CD PUSH2 0x15C3 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x5 DUP5 ADD SWAP1 PUSH1 0x1 JUMPDEST DUP3 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1AC6 JUMPI DUP5 PUSH2 0x19F6 DUP4 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A16 JUMPI POP PUSH1 0x1 ADD PUSH2 0x19E1 JUMP JUMPDEST SWAP1 PUSH0 SWAP7 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI PUSH2 0x1383 PUSH2 0x1A38 PUSH2 0x1A51 SWAP4 DUP8 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 PUSH2 0x134B JUMP JUMPDEST DUP3 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP5 PUSH1 0x40 SWAP5 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1A95 PUSH2 0x1A80 DUP4 DUP4 PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP4 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1989 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP SWAP1 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 SWAP4 POP PUSH1 0x40 SWAP2 POP PUSH2 0x1989 JUMP JUMPDEST POP PUSH0 PUSH2 0x1957 JUMP JUMPDEST DUP6 PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP1 SWAP2 PUSH2 0x1B16 DUP3 DUP5 DUP7 PUSH2 0x270D JUMP JUMPDEST ISZERO PUSH2 0x15BA JUMPI PUSH2 0x1B23 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x15B3 JUMPI PUSH2 0x1B31 DUP4 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1B42 PUSH2 0x14FB PUSH1 0x5 PUSH2 0x1890 PUSH2 0x15C3 JUMP JUMPDEST POP PUSH2 0x1B4B PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1B70 PUSH1 0x5 DUP4 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1BA4 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x18F8 SWAP2 PUSH2 0x1318 JUMP JUMPDEST DUP1 PUSH2 0x1BAF DUP7 DUP9 PUSH2 0x1318 JUMP JUMPDEST GT PUSH2 0x1BBA DUP7 DUP9 PUSH2 0x1318 JUMP JUMPDEST SWAP1 PUSH2 0x1D8A JUMPI POP PUSH1 0x6 PUSH2 0x1BEC SWAP4 DUP7 SWAP4 PUSH2 0x1BD9 DUP6 PUSH2 0x1581 DUP12 PUSH2 0x1BE7 SWAP8 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE ADD SWAP4 DUP5 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST PUSH2 0x1318 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1BF6 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D81 JUMPI JUMPDEST ISZERO PUSH2 0x1C86 JUMPI SWAP2 DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 SWAP6 DUP9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP9 SWAP10 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1C7B JUMPI JUMPDEST PUSH2 0x1C68 JUMPI JUMPDEST POP POP DUP8 DUP2 SSTORE ADD SSTORE JUMPDEST DUP3 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1C74 SWAP3 ADD PUSH2 0x1360 JUMP JUMPDEST PUSH0 DUP6 PUSH2 0x1C46 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1C41 JUMP JUMPDEST POP POP SWAP2 PUSH2 0x1C91 PUSH2 0x15C3 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 PUSH1 0x5 DUP6 ADD SWAP2 PUSH1 0x1 JUMPDEST DUP4 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1D62 JUMPI DUP6 PUSH2 0x1CBA DUP4 DUP8 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1CDA JUMPI POP PUSH1 0x1 ADD PUSH2 0x1CA5 JUMP JUMPDEST SWAP1 PUSH0 SWAP8 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 SWAP8 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI PUSH2 0x1383 PUSH2 0x1CFD PUSH2 0x1D16 SWAP4 DUP9 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP8 PUSH2 0x134B JUMP JUMPDEST DUP4 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 PUSH1 0x40 SWAP6 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1D45 PUSH2 0x1A80 DUP4 DUP4 PUSH2 0x134B JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP5 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1C4E JUMP JUMPDEST POP POP SWAP1 SWAP2 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP4 SWAP5 POP PUSH1 0x40 SWAP3 POP PUSH2 0x1C4E JUMP JUMPDEST POP DUP3 ISZERO ISZERO PUSH2 0x1C1A JUMP JUMPDEST PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x1DFC JUMPI PUSH1 0x4 PUSH2 0x1DB8 PUSH2 0x15C3 JUMP JUMPDEST ADD DUP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD DUP1 SLOAD NUMBER GT ISZERO PUSH2 0x1E1D JUMPI NUMBER SWAP1 SSTORE DUP1 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH0 DUP1 SWAP2 PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x1EFC6B41 PUSH1 0xE1 SHL DUP4 MSTORE GAS CALL DUP1 ISZERO PUSH2 0x1E12 JUMPI PUSH2 0x1E02 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1E0C SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x1E2C PUSH2 0x15C3 JUMP JUMPDEST PUSH2 0x1E34 PUSH2 0x2527 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x1E67 JUMPI PUSH1 0x3 ADD SLOAD ISZERO PUSH2 0x1E5F JUMPI PUSH2 0x1E5C NUMBER PUSH2 0x16A2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E5C PUSH2 0x2859 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E76 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x1E85 DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP7 PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL SWAP2 SWAP1 SWAP2 SHR AND SWAP4 SWAP1 DUP6 DUP6 EQ PUSH2 0x1FD9 JUMPI DUP4 SLOAD PUSH1 0x1 JUMPDEST DUP2 DUP2 LT PUSH2 0x1F9C JUMPI POP POP PUSH2 0x1EBD PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x1F93 JUMPI PUSH1 0x4 PUSH2 0x1EF6 SWAP2 PUSH2 0x1ED1 DUP7 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1EDB DUP5 PUSH2 0x1D9F JUMP JUMPDEST POP ADD SWAP2 DUP6 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH2 0x1383 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP5 PUSH2 0x1325 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP4 MSTORE SWAP2 KECCAK256 SWAP1 DUP1 DUP3 SUB PUSH2 0x1F75 JUMPI JUMPDEST POP POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 PUSH1 0x40 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH31 0xF06471E88E0BC1DB6B6126EFDB09F80B597E6DDC145FF0DCABD12AFAB4EC57 PUSH0 DUP1 LOG3 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SWAP3 SLOAD DUP5 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 DUP6 ADD SSTORE ADD SLOAD SWAP2 ADD SSTORE PUSH0 DUP1 PUSH2 0x1F1C JUMP JUMPDEST POP POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST DUP8 PUSH2 0x1FA7 DUP3 DUP9 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FC6 JUMPI PUSH1 0x1 ADD PUSH2 0x1EAC JUMP JUMPDEST DUP8 PUSH4 0xF158185D PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP4 SWAP1 SWAP4 SWAP3 SWAP2 SWAP3 PUSH2 0x1FF2 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x12E6 JUMPI PUSH1 0x1 SWAP7 SWAP6 PUSH1 0x4 PUSH1 0x5 DUP5 ADD SWAP4 ADD SWAP8 JUMPDEST DUP4 SLOAD DUP2 LT ISZERO PUSH2 0x210B JUMPI PUSH2 0x2024 DUP2 DUP6 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP1 PUSH2 0x205B JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x2011 JUMP JUMPDEST SWAP1 PUSH2 0x2065 SWAP2 PUSH2 0x168F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x20FB JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP6 PUSH0 PUSH2 0x204F JUMP JUMPDEST PUSH0 PUSH2 0x2105 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x20EC JUMP JUMPDEST POP SWAP2 SWAP4 SWAP5 SWAP6 SWAP1 SWAP7 POP PUSH2 0x211D SWAP3 POP PUSH2 0x12D9 JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x212A JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2133 SWAP1 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2124 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 PUSH0 SWAP1 DUP4 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 PUSH1 0x20 SWAP3 PUSH2 0x21DE JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 PUSH0 DUP1 DUP1 DUP1 PUSH2 0x2124 JUMP JUMPDEST PUSH0 PUSH2 0x21E8 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x21CD JUMP JUMPDEST SWAP2 SWAP1 SWAP2 PUSH2 0x21F9 PUSH2 0x15C3 JUMP JUMPDEST SWAP3 DUP1 ISZERO DUP1 DUP1 ISZERO PUSH2 0x234D JUMPI JUMPDEST PUSH2 0x2346 JUMPI PUSH1 0x1 DUP6 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x12E6 JUMPI PUSH1 0x4 DUP7 ADD SWAP7 SWAP6 PUSH1 0x5 ADD PUSH1 0x1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x233B JUMPI PUSH2 0x2238 DUP2 DUP4 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP1 PUSH2 0x226F JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x2225 JUMP JUMPDEST PUSH2 0x2279 SWAP1 DUP7 PUSH2 0x168F JUMP JUMPDEST SWAP1 PUSH2 0x2327 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP8 SWAP1 DIV DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x2317 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP5 PUSH0 PUSH2 0x2263 JUMP JUMPDEST PUSH0 PUSH2 0x2321 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x2308 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP1 POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x2204 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x23E8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B01 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B01 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x252F PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SWAP1 DUP2 SLOAD NUMBER DUP2 EQ PUSH2 0x2708 JUMPI PUSH2 0x2547 DUP2 NUMBER PUSH2 0x12D9 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x12E6 JUMPI PUSH1 0x3 DUP4 ADD DUP1 SLOAD SWAP1 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND DUP1 ISZERO PUSH2 0x26FF JUMPI JUMPDEST PUSH2 0x26A4 JUMPI JUMPDEST POP POP NUMBER SWAP1 SSTORE PUSH1 0x6 DUP3 ADD SLOAD DUP1 PUSH2 0x258D JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0x7 DUP5 ADD SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x11CA JUMPI PUSH1 0x2 DUP2 SUB PUSH2 0x2650 JUMPI POP POP PUSH1 0x5 DUP3 ADD DUP1 SLOAD SWAP4 PUSH1 0x4 SWAP1 SWAP4 ADD SWAP3 SWAP1 PUSH0 JUMPDEST DUP6 DUP2 LT PUSH2 0x25CF JUMPI POP POP POP POP POP POP JUMPDEST PUSH0 DUP1 DUP1 DUP1 PUSH2 0x2124 JUMP JUMPDEST DUP1 PUSH2 0x25DC PUSH1 0x1 SWAP3 DUP5 PUSH2 0x134B JUMP JUMPDEST DUP4 DUP1 PUSH1 0xA0 SHL SUB SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND DUP3 DUP1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 MSTORE DUP7 PUSH1 0x20 MSTORE DUP6 DUP4 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD DUP7 DUP2 PUSH2 0x2611 JUMPI JUMPDEST POP POP POP POP ADD PUSH2 0x25B8 JUMP JUMPDEST PUSH2 0x261A SWAP2 PUSH2 0x168F JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH32 0xA34DB09D4126DD8DCD1D29F3DF65C01DCAC405127546E380ADD77FEDCA459BA7 PUSH1 0x20 NUMBER SWAP5 LOG4 PUSH0 DUP6 DUP2 DUP7 PUSH2 0x2607 JUMP JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 POP SWAP1 PUSH1 0x1 EQ PUSH2 0x2666 JUMPI JUMPDEST POP POP POP PUSH2 0x25C6 JUMP JUMPDEST PUSH2 0x266F SWAP2 PUSH2 0x168F JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xCEF44CE1A1FC7CA1F3078DAF79D3B60646D0E751BC72A69BFF12F66C4AEF3B8D PUSH1 0x20 NUMBER SWAP4 LOG3 PUSH0 DUP1 DUP1 PUSH2 0x265E JUMP JUMPDEST PUSH2 0x26BB PUSH2 0x26B5 DUP8 PUSH1 0x6 DUP9 ADD SLOAD PUSH2 0x168F JUMP JUMPDEST DUP4 PUSH2 0x1318 JUMP JUMPDEST DUP1 SWAP2 SSTORE DUP1 DUP3 SUB ISZERO PUSH2 0x2578 JUMPI PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH32 0x539CE444A515B8AA8769802297761FBEC80B5B543C617714BF5E0611CF669DB PUSH1 0x40 NUMBER SWAP4 LOG3 PUSH0 DUP1 PUSH2 0x2578 JUMP JUMPDEST POP DUP2 ISZERO ISZERO PUSH2 0x2573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 DUP3 ISZERO PUSH2 0x284A JUMPI PUSH2 0x2726 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD PUSH2 0x2750 PUSH2 0x2736 DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 EQ SWAP2 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2838 JUMPI POP PUSH1 0x4 SWAP1 DUP5 PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP3 DUP3 DUP3 SLOAD EQ SWAP2 DUP3 PUSH2 0x282A JUMPI JUMPDEST POP POP PUSH2 0x15B3 JUMPI ISZERO SWAP1 DUP2 ISZERO SWAP2 PUSH2 0x2820 JUMPI JUMPDEST POP PUSH2 0x279D JUMPI POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP6 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH0 SWAP2 PUSH2 0x27E5 JUMPI JUMPDEST POP PUSH2 0x1DFC JUMPI PUSH4 0xA5FE8615 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2818 JUMPI JUMPDEST DUP2 PUSH2 0x2800 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x1299 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x22F JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x22F JUMPI PUSH0 PUSH2 0x27CE JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27F3 JUMP JUMPDEST SWAP1 POP ISZERO ISZERO PUSH0 PUSH2 0x2792 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD EQ SWAP1 POP DUP3 PUSH0 PUSH2 0x2782 JUMP JUMPDEST PUSH4 0xFDA6C187 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x22A4EC7B PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x2861 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x2874 DUP3 NUMBER PUSH2 0x12D9 JUMP JUMPDEST SWAP1 DUP2 ISZERO PUSH2 0x29AC JUMPI PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x12E6 JUMPI PUSH0 SWAP5 SWAP4 PUSH1 0x4 PUSH1 0x5 DUP4 ADD SWAP3 ADD SWAP6 JUMPDEST DUP3 SLOAD DUP2 LT ISZERO PUSH2 0x299F JUMPI PUSH2 0x28A6 DUP2 DUP5 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2996 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 MSTORE DUP8 PUSH1 0x20 MSTORE DUP5 PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 PUSH2 0x28E7 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP JUMPDEST ADD PUSH2 0x2893 JUMP JUMPDEST SWAP1 PUSH2 0x28F1 SWAP2 PUSH2 0x168F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH1 0x1 SWAP5 DUP10 SWAP3 PUSH2 0x2986 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 NUMBER SWAP5 LOG4 DUP5 PUSH0 PUSH2 0x28DA JUMP JUMPDEST PUSH0 PUSH2 0x2990 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP PUSH2 0x28E1 JUMP JUMPDEST POP SWAP5 POP POP POP POP NUMBER SWAP1 SSTORE NUMBER SWAP1 JUMP JUMPDEST POP SWAP1 SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x15B3 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x2A03 PUSH2 0x29ED DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x134B JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x2ABF JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x12E6 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x12E6 JUMPI DUP2 DUP2 SUB PUSH2 0x2A8A JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x2A6B DUP3 DUP3 PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2AAA PUSH2 0x2A9A PUSH2 0x29ED SWAP4 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x2A52 JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x2AE3 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8030C56D855D8DF534C916B78EAC3522E5FAFD59F BASEFEE PUSH26 0x9C4A97D42E80F6E08989607935BD0AE54BC31F548C14DBA4D37C TLOAD PUSH5 0xB3F8CA900C 0xB4 PUSH9 0xFB8ABD54D5894F5502 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46D9B779B17422D0DF9222301 DUP12 ORIGIN 0xB4 DATALOADN 0xFA46 RJUMP 0x7172 RETURNDATASIZE PUSH9 0x17E2486D003BECC55F STOP SHL 0xD3 CREATE 0xD2 CALL STOP BYTE DUP6 PUSH14 0x81215CEB86C548BDBC3BF52480A0 DUP10 PUSH25 0xF8C3EA6E2BD421F0C57E16840DF040F15088DC2F81FE391C39 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 PUSH12 0x54882B4D4A139F908E1D4575 0xB1 EXTCODEHASH 0xB4 0x28 DUP15 0xDA DUP5 DUP3 TSTORE DUPN 0x4A 0xC6 0x2F 0xBF DUP15 ADDRESS STOP PUSH23 0x64736F6C63430008210033F0C57E16840DF040F15088DC 0x2F DUP2 INVALID CODECOPY SHR CODECOPY 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 ","sourceMap":"395:1631:47:-:0;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;4199:24:45;;395:1631:47;;4267:37:45;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;7894:76:23;;-1:-1:-1;;;;;;;;;;;395:1631:47;;7983:34:23;7979:146;;-1:-1:-1;395:1631:47;;;;;;;;4267:37:45;395:1631:47;;;;;;;;;;;;;;;;;;;;;7979:146:23;-1:-1:-1;;;;;;395:1631:47;-1:-1:-1;;;;;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;8085:29:23;;395:1631:47;;8085:29:23;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:23;;-1:-1:-1;7936:23:23;395:1631:47;;;;-1:-1:-1;395:1631:47;;-1:-1:-1;395:1631:47;;-1:-1:-1;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;;-1:-1:-1;395:1631:47"},"deployedBytecode":{"functionDebugData":{"abi_decode_address":{"entryPoint":4431,"id":null,"parameterSlots":0,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4453,"id":null,"parameterSlots":0,"returnSlots":1},"abi_encode_address_uint256":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_array_address_dyn":{"entryPoint":4475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_enum_SelfMintingEventMode":{"entryPoint":4541,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_struct_Allocation":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_and_zero_memory_struct_struct_Allocation":{"entryPoint":4795,"id":null,"parameterSlots":0,"returnSlots":1},"array_push_from_address_to_array_address_dyn_storage_ptr":{"entryPoint":4960,"id":null,"parameterSlots":2,"returnSlots":0},"checked_add_uint256":{"entryPoint":4888,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_uint256":{"entryPoint":5775,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_uint256":{"entryPoint":4825,"id":null,"parameterSlots":2,"returnSlots":1},"constant_ISSUANCE_ALLOCATOR_STORAGE_LOCATION":{"entryPoint":5571,"id":null,"parameterSlots":0,"returnSlots":1},"finalize_allocation":{"entryPoint":4761,"id":null,"parameterSlots":2,"returnSlots":0},"finalize_allocation_18464":{"entryPoint":4705,"id":null,"parameterSlots":1,"returnSlots":0},"finalize_allocation_18475":{"entryPoint":4733,"id":null,"parameterSlots":1,"returnSlots":0},"fun__checkRole":{"entryPoint":5033,"id":2232,"parameterSlots":0,"returnSlots":0},"fun__grantRole":{"entryPoint":9197,"id":2418,"parameterSlots":2,"returnSlots":1},"fun__revokeRole":{"entryPoint":5709,"id":2690,"parameterSlots":2,"returnSlots":1},"fun__setTargetAllocation":{"entryPoint":6919,"id":13450,"parameterSlots":4,"returnSlots":1},"fun_add":{"entryPoint":10675,"id":8455,"parameterSlots":2,"returnSlots":1},"fun_advanceSelfMintingBlock":{"entryPoint":9511,"id":12230,"parameterSlots":0,"returnSlots":0},"fun_checkInitializing":{"entryPoint":10951,"id":2867,"parameterSlots":0,"returnSlots":0},"fun_checkRole":{"entryPoint":5106,"id":2232,"parameterSlots":0,"returnSlots":0},"fun_checkRole_2232":{"entryPoint":5198,"id":2232,"parameterSlots":1,"returnSlots":0},"fun_distributeIssuance":{"entryPoint":7716,"id":12264,"parameterSlots":0,"returnSlots":1},"fun_distributePendingIssuance":{"entryPoint":5794,"id":12553,"parameterSlots":1,"returnSlots":1},"fun_distributePendingProportionally":{"entryPoint":8686,"id":12827,"parameterSlots":3,"returnSlots":0},"fun_distributePendingWithFullRate":{"entryPoint":8164,"id":12735,"parameterSlots":4,"returnSlots":0},"fun_getRoleAdmin":{"entryPoint":4858,"id":2274,"parameterSlots":1,"returnSlots":1},"fun_grantRole":{"entryPoint":9045,"id":2418,"parameterSlots":1,"returnSlots":1},"fun_grantRole_2650":{"entryPoint":5639,"id":2650,"parameterSlots":2,"returnSlots":1},"fun_nonReentrantBefore":{"entryPoint":5268,"id":4497,"parameterSlots":0,"returnSlots":0},"fun_notifyTarget":{"entryPoint":7583,"id":13076,"parameterSlots":1,"returnSlots":1},"fun_performNormalDistribution":{"entryPoint":10329,"id":12374,"parameterSlots":0,"returnSlots":1},"fun_remove":{"entryPoint":10774,"id":8539,"parameterSlots":2,"returnSlots":1},"fun_revokeRole":{"entryPoint":9355,"id":2464,"parameterSlots":2,"returnSlots":1},"fun_setDefaultTarget":{"entryPoint":7790,"id":13387,"parameterSlots":2,"returnSlots":1},"fun_setIssuancePerBlock":{"entryPoint":5321,"id":12964,"parameterSlots":2,"returnSlots":1},"fun_setSelfMintingEventMode_inner":{"entryPoint":4574,"id":null,"parameterSlots":1,"returnSlots":1},"fun_setTargetAllocation":{"entryPoint":6231,"id":13450,"parameterSlots":3,"returnSlots":1},"fun_validateAllocationChange":{"entryPoint":9997,"id":13540,"parameterSlots":3,"returnSlots":1},"storage_array_index_access_address_dyn":{"entryPoint":4939,"id":null,"parameterSlots":2,"returnSlots":2},"storage_array_index_access_address_dyn_":{"entryPoint":4901,"id":null,"parameterSlots":1,"returnSlots":2},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_address_to_address":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":0},"update_storage_value_address_to_address_18602":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0}},"generatedSources":[],"immutableReferences":{"14015":[{"length":32,"start":8295},{"length":32,"start":8526},{"length":32,"start":8832},{"length":32,"start":10483}]},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611066575080631156bdc11461103757806313a7855d14610ffd57806315d3b5d814610f84578063248a9ca314610f665780632f2ff15d14610f355780633067cb4c14610e8d57806332bc934c14610e7057806336568abe14610e2c578063389ed26714610e055780633af5b07314610dda5780633f4ba83a14610d5c578063443990fa14610d1a5780634887693c14610ce757806348c3c62e14610c6157806349bdfcb014610c245780634a1293b714610bfe57806352c0e18c14610bb85780635c975abb14610b8a57806363fe3b5614610b21578063647b368214610adb578063697cf32214610aa657806379d5fc5414610a835780637c92330b14610a335780638456cb59146109b257806384c484221461095257806387ee921c146109295780639010d07c146108d857806391d148541461088357806393c911a814610855578063a217fddf1461083b578063a3246ad3146107bb578063c2cb354414610773578063c4d66de814610401578063c627b7a4146103d0578063ca15c8731461039a578063ccc5749014610373578063d012a15b14610322578063d48beb1b146102fd578063d547741f146102c7578063e038978e146102a3578063ee56977e146102335763f5b541a6146101f5575f80fd5b3461022f575f36600319011261022f5760206040517f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298152f35b5f80fd5b3461022f575f36600319011261022f5761024b6112bb565b5060606102566115c3565b6001810154906003600282015491015490604051926102748461127d565b8352602083015260408201526102a160405180926040809180518452602081015160208501520151910152565bf35b3461022f57606036600319011261022f576102c56044356024356004356121ee565b005b3461022f57604036600319011261022f576102c56004356102e661114f565b906102f86102f3826112fa565b61144e565b61164d565b3461022f57608036600319011261022f576102c5606435604435602435600435611fe4565b3461022f57604036600319011261022f576020610359610340611165565b6103486113a9565b610350611494565b60243590611e6e565b5f5f516020612bf35f395f51905f525d6040519015158152f35b3461022f575f36600319011261022f5760206040515f516020612b735f395f51905f528152f35b3461022f57602036600319011261022f576004355f525f516020612b135f395f51905f52602052602060405f2054604051908152f35b3461022f57604036600319011261022f576103e96113a9565b6103f1611494565b60206103596024356004356114c9565b3461022f57602036600319011261022f5761041a611165565b5f516020612c335f395f51905f52549060ff8260401c16159167ffffffffffffffff81168015908161076b575b6001149081610761575b159081610758575b506107495767ffffffffffffffff1981166001175f516020612c335f395f51905f52558261071d575b5061048b612ac7565b610493612ac7565b6001600160a01b03811690811561070e575f516020612b735f395f51905f525f8181525f516020612b935f395f51905f526020527f75e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8048054908390556105f993929182905f516020612af35f395f51905f529080a45f516020612bd35f395f51905f525f8181525f516020612b935f395f51905f526020527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff13480545f516020612b735f395f51905f5291829055909290915f516020612af35f395f51905f529080a47f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9295f8181525f516020612b935f395f51905f526020527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb45780545f516020612b735f395f51905f5291829055909290915f516020612af35f395f51905f529080a4612355565b6106bc575b506106076115c3565b600581018054600160401b8110156106a8576106289160018201815561134b565b81549060018060a01b039060031b1b1916905560078101600260ff1982541617905560014391015561065657005b60ff60401b195f516020612c335f395f51905f5254165f516020612c335f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b634e487b7160e01b5f52604160045260245ffd5b5f516020612b735f395f51905f525f525f516020612b135f395f51905f52602052610707907f955af8caaf1bb5fca493cbb01cefeb9e610a81071c268cd8b40c82100cbb956e6129b3565b50816105fe565b63395d053560e01b5f5260045ffd5b68ffffffffffffffffff191668010000000000000001175f516020612c335f395f51905f525582610482565b63f92ee8a960e01b5f5260045ffd5b90501584610459565b303b159150610451565b849150610447565b3461022f57608036600319011261022f576020610359610791611165565b6107996113a9565b6107a1611494565b6064359060443590602435906001600160a01b0316611b07565b3461022f57602036600319011261022f576004355f525f516020612b135f395f51905f5260205260405f206040519081602082549182815201915f5260205f20905f5b818110610825576108218561081581870382611299565b6040519182918261117b565b0390f35b82548452602090930192600192830192016107fe565b3461022f575f36600319011261022f5760206040515f8152f35b3461022f575f36600319011261022f57602060ff60076108736115c3565b0154166102a160405180926111bd565b3461022f57604036600319011261022f5761089c61114f565b6004355f525f516020612b935f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461022f57604036600319011261022f576004355f525f516020612b135f395f51905f52602052602061091060243560405f2061134b565b905460405160039290921b1c6001600160a01b03168152f35b3461022f57602036600319011261022f576020610910600435600561094c6115c3565b0161134b565b3461022f57602036600319011261022f5761096b611165565b6109736112bb565b50600461097e6115c3565b019060018060a01b03165f52602052606060405f20600181549101546109a48183611318565b91604051926102748461127d565b3461022f575f36600319011261022f576109ca6113f2565b5f516020612bb35f395f51905f525460ff8116610a245760019060ff1916175f516020612bb35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63d93c066560e01b5f5260045ffd5b3461022f57604036600319011261022f576020610a4e611165565b60243590610a5a6113a9565b6004610a646115c3565b019060018060a01b03165f52825280600260405f200155604051908152f35b3461022f575f36600319011261022f576020610a9d6115c3565b54604051908152f35b3461022f57602036600319011261022f576020610359610ac4611165565b610acc6113a9565b610ad4611494565b4390611e6e565b3461022f57606036600319011261022f576020610359610af9611165565b610b016113a9565b610b09611494565b439060443590602435906001600160a01b0316611b07565b3461022f575f36600319011261022f576005610b3b6115c3565b016040519081602082549182815201915f5260205f20905f5b818110610b6b576108218561081581870382611299565b82546001600160a01b0316845260209093019260019283019201610b54565b3461022f575f36600319011261022f57602060ff5f516020612bb35f395f51905f5254166040519015158152f35b3461022f57602036600319011261022f57610bd16113a9565b610bd9611494565b6020610be66004356116a2565b5f5f516020612bf35f395f51905f525d604051908152f35b3461022f575f36600319011261022f5760206005610c1a6115c3565b0154604051908152f35b3461022f575f36600319011261022f576001610c3e6115c3565b01544303610c52576020435b604051908152f35b6020610c5c611e24565b610c4a565b3461022f57602036600319011261022f57610c7a611165565b610c826112bb565b506004610c8d6115c3565b019060018060a01b03165f52602052606060405f20600260405191610cb18361127d565b8054835260018101546020840152015460408201526102a160405180926040809180518452602081015160208501520151910152565b3461022f57602036600319011261022f576020610359610d05611165565b610d0d6113a9565b610d15611494565b611d9f565b3461022f57604036600319011261022f576020610359610d38611165565b610d406113a9565b610d48611494565b4390602435906001600160a01b0316611857565b3461022f575f36600319011261022f57610d746113f2565b5f516020612bb35f395f51905f525460ff811615610dcb5760ff19165f516020612bb35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b3461022f575f36600319011261022f57610df26113a9565b610dfa611494565b6020610be6436116a2565b3461022f575f36600319011261022f5760206040515f516020612bd35f395f51905f528152f35b3461022f57604036600319011261022f57610e4561114f565b336001600160a01b03821603610e61576102c59060043561164d565b63334bd91960e11b5f5260045ffd5b3461022f575f36600319011261022f576020604051620f42408152f35b3461022f57602036600319011261022f576080610ea8611165565b5f6060604051610eb781611261565b8281528260208201528260408201520152610ed06115c3565b9060018060a01b03165f526004810160205260405f208054916002600180830154930154910154916060604051610f0681611261565b858152602081019283526040810193845201928352604051938452516020840152516040830152516060820152f35b3461022f57604036600319011261022f576102c5600435610f5461114f565b90610f616102f3826112fa565b611607565b3461022f57602036600319011261022f576020610c4a6004356112fa565b3461022f575f36600319011261022f576060610f9e6112bb565b610fd7610fa96115c3565b6006610fc582545f80526004840160205260405f2054906112d9565b918285520154908160408501526112d9565b60208201526102a160405180926040809180518452602081015160208501520151910152565b3461022f57602036600319011261022f57600435600381101561022f5761102d6020916110286113a9565b6111de565b6040519015158152f35b3461022f57602036600319011261022f576110506113a9565b611058611494565b6020610359436004356114c9565b3461022f57602036600319011261022f576004359063ffffffff60e01b821680920361022f57602091631e768dff60e21b811490811561113e575b811561112d575b811561111c575b81156110bd575b5015158152f35b631cf1473b60e31b8114915081156110d7575b50836110b6565b635a05180f60e01b8114915081156110f1575b50836110d0565b637965db0b60e01b81149150811561110b575b50836110ea565b6301ffc9a760e01b14905083611104565b632461e31760e11b811491506110af565b63a896602d60e01b811491506110a8565b6350d8541d60e01b811491506110a1565b602435906001600160a01b038216820361022f57565b600435906001600160a01b038216820361022f57565b60206040818301928281528451809452019201905f5b81811061119e5750505090565b82516001600160a01b0316845260209384019390920191600101611191565b9060038210156111ca5752565b634e487b7160e01b5f52602160045260245ffd5b60076111e86115c3565b019060ff82541660038110156111ca5760038210156111ca57808214611259576112536040927f3f59746e46bfb9af931035055d53b82d1b70968466065162b7dbf8e998aee6299460ff1981541660ff8316179055611249845180946111bd565b60208301906111bd565ba1600190565b505050600190565b6080810190811067ffffffffffffffff8211176106a857604052565b6060810190811067ffffffffffffffff8211176106a857604052565b90601f8019910116810190811067ffffffffffffffff8211176106a857604052565b604051906112c88261127d565b5f6040838281528260208201520152565b919082039182116112e657565b634e487b7160e01b5f52601160045260245ffd5b5f525f516020612b935f395f51905f52602052600160405f20015490565b919082018092116112e657565b805415611337575f5260205f20905f90565b634e487b7160e01b5f52603260045260245ffd5b8054821015611337575f5260205f2001905f90565b80549190600160401b8310156106a857826113839160016113a79501815561134b565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b565b335f9081525f516020612b335f395f51905f52602052604090205460ff16156113ce57565b63e2517d3f60e01b5f52336004525f516020612b735f395f51905f5260245260445ffd5b335f9081527f85aa68ae9688c2bba3dc27a57a38bf2786c03751927fe89ecfd8b396d55ff133602052604090205460ff161561142a57565b63e2517d3f60e01b5f52336004525f516020612bd35f395f51905f5260245260445ffd5b5f8181525f516020612b935f395f51905f526020908152604080832033845290915290205460ff161561147e5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f516020612bf35f395f51905f525c6114ba5760015f516020612bf35f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b6114d16115c3565b8054928383146115ba576114e3611e24565b106115b357611518600582016115126114fb82611325565b905460039190911b1c6001600160a01b0316611d9f565b50611325565b905460039190911b1c6001600160a01b03165f908152600482016020526040902080546115458185611318565b85116115995792849281926115867f2925be3e6d4b2cbcec6c06d5060fb3b53f160410555e45ee0a1f6dc7ae9b24c09761158185604099611318565b6112d9565b90555582519182526020820152a1600190565b8385632c421f2b60e21b5f5260045260245260445260645ffd5b5050505f90565b50505050600190565b604051602081017f109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd48152602082526115fc604083611299565b9051902060ff191690565b61161182826123ed565b918261161c57505090565b5f9182525f516020612b135f395f51905f526020526040909120611649916001600160a01b0316906129b3565b5090565b611657828261248b565b918261166257505090565b5f9182525f516020612b135f395f51905f526020526040909120611649916001600160a01b031690612a16565b818102929181159184041417156112e657565b6116aa612527565b6116b26115c3565b600181018054838111158061184d575b15611833576116d190846112d9565b91821561182d57838154926116e6858561168f565b92826003820154958587105f146118265761170187876112d9565b925b836117a8575b50505050556117166115c3565b9043850361178a575f935b848403611734575b505060039150015590565b61173e90866112d9565b600181018091116112e6577f1a45018bdab6039c806fac73d617b3bc5c6a2a0f22f6f90d2ca202b083087f99606060039588946040519182528860208301526040820152a35f80611729565b828110156117a25761179c81846112d9565b93611721565b5f61179c565b6117e86117f0926117bb60058401611325565b905460039190911b1c6001600160a01b03165f9081526004840160205260409020600690930154906112d9565b9054906112d9565b6117fa888261168f565b80841015611815575061180c926121ee565b5f828180611709565b90506118219288611fe4565b61180c565b5f92611703565b50505090565b8363a0d2b9db60e01b5f526004526024524360445260645ffd5b50438411156116c2565b90916118645f848461270d565b1561125957611871611e24565b10611b015761187f81611d9f565b506118966114fb60056118906115c3565b01611325565b5061189f6115c3565b600481019060018060a01b0383165f528160205260405f20916118c460058301611325565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611903916001916118f891611318565b940193845490611318565b808611611aeb579160069161191b87611929956112d9565b9055019182549054906112d9565b90556119336115c3565b6001600160a01b0382165f9081526004820160205260409020908315801590611ae4575b156119c257915f6001835f516020612c135f395f51905f5295846040965415806119b7575b6119a4575b505086815501555b81519384525f60208501526001600160a01b031692a2600190565b60056119b09201611360565b5f84611981565b50838301541561197c565b5050906119cd6115c3565b916001600160a01b03811690600584019060015b825480821015611ac657846119f6838661134b565b905460039190911b1c6001600160a01b031614611a1657506001016119e1565b905f9692939495961982019182116112e657611383611a38611a51938761134b565b905460039190911b1c6001600160a01b0316918661134b565b8254908115611ab2575f516020612c135f395f51905f52946040946004935f190190611a95611a80838361134b565b81549060018060a01b039060031b1b19169055565b555f52016020525f60028382208281558260018201550155611989565b634e487b7160e01b5f52603160045260245ffd5b505090505f516020612c135f395f51905f5292935060409150611989565b505f611957565b8563162930e360e11b5f5260045260245260445ffd5b50505f90565b92919091611b1682848661270d565b156115ba57611b23611e24565b106115b357611b3183611d9f565b50611b426114fb60056118906115c3565b50611b4b6115c3565b600481019060018060a01b0385165f528160205260405f2091611b7060058301611325565b905460039190911b1c6001600160a01b03165f9081526020919091526040902080548354611ba4916001916118f891611318565b80611baf8688611318565b11611bba8688611318565b90611d8a57506006611bec938693611bd9856115818b611be7976112d9565b9055019384549054906112d9565b611318565b9055611bf66115c3565b6001600160a01b0384165f9081526004820160205260409020908315801590611d81575b15611c86579180600183604095885f516020612c135f395f51905f52989996541580611c7b575b611c68575b505087815501555b825194855260208501526001600160a01b031692a2600190565b6005611c749201611360565b5f85611c46565b508383015415611c41565b505091611c916115c3565b926001600160a01b03821691600585019160015b835480821015611d625785611cba838761134b565b905460039190911b1c6001600160a01b031614611cda5750600101611ca5565b905f979293949596971982019182116112e657611383611cfd611d16938861134b565b905460039190911b1c6001600160a01b0316918761134b565b8354908115611ab2575f516020612c135f395f51905f52956040956004935f190190611d45611a80838361134b565b555f52016020525f60028482208281558260018201550155611c4e565b50509091505f516020612c135f395f51905f5293945060409250611c4e565b50821515611c1a565b63162930e360e11b5f5260045260245260445ffd5b6001600160a01b03168015611dfc576004611db86115c3565b01815f52602052600260405f20018054431115611e1d57439055803b1561022f575f8091600460405180948193631efc6b4160e11b83525af18015611e1257611e02575b50600190565b5f611e0c91611299565b5f611dfc565b6040513d5f823e3d90fd5b5050600190565b611e2c6115c3565b611e34612527565b60ff5f516020612bb35f395f51905f525416611e67576003015415611e5f57611e5c436116a2565b90565b611e5c612859565b6001015490565b611e766115c3565b906005820190611e8582611325565b90546001600160a01b038381169660039390931b9190911c169390858514611fd957835460015b818110611f9c575050611ebd611e24565b10611f93576004611ef691611ed186611d9f565b50611edb84611d9f565b500191855f5282602052611383600260405f20015494611325565b6001600160a01b0383165f90815260208290526040808220868352912090808203611f75575b505060018060a01b0383165f52806020525f6002604082208281558260018201550155835f52602052600260405f2001557ef06471e88e0bc1db6b6126efdb09f80b597e6ddc145ff0dcabd12afab4ec575f80a3600190565b60028181925484556001810154600185015501549101555f80611f1c565b50505050505f90565b87611fa7828861134b565b905460039190911b1c6001600160a01b031614611fc657600101611eac565b8763f158185d60e01b5f5260045260245ffd5b505050505050600190565b939093929192611ff26115c3565b600181015492600184018094116112e657600196956004600584019301975b835481101561210b57612024818561134b565b905460039190911b1c6001600160a01b03165f81815260208b9052604090205490919086908061205b575b50506001915001612011565b906120659161168f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290833b1561022f576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af1918215611e12575f516020612b535f395f51905f5260208b936001978e966120fb575b50604051908152a4855f61204f565b5f61210591611299565b5f6120ec565b509193949590965061211d92506112d9565b908161212a575b50505050565b61213390611325565b905460039190911b1c6001600160a01b0316908115612124577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561022f576040516340c10f1960e01b81526001600160a01b038416600482015260248101829052915f908390604490829084905af1908115611e12575f516020612b535f395f51905f52926020926121de575b50604051908152a45f808080612124565b5f6121e891611299565b5f6121cd565b9190916121f96115c3565b92801580801561234d575b61234657600185015492600184018094116112e65760048601969560050160015b815481101561233b57612238818361134b565b905460039190911b1c6001600160a01b03165f81815260208b9052604090205490919085908061226f575b50506001915001612225565b612279908661168f565b90612327577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290879004833b1561022f576040516340c10f1960e01b81526001600160a01b038316600482015260248101829052935f908590604490829084905af1918215611e12575f516020612b535f395f51905f5260208b936001978e96612317575b50604051908152a4845f612263565b5f61232191611299565b5f612308565b634e487b7160e01b5f52601260045260245ffd5b505050505050509050565b5050505050565b508215612204565b6001600160a01b0381165f9081525f516020612b335f395f51905f52602052604090205460ff166123e8576001600160a01b03165f8181525f516020612b335f395f51905f5260205260408120805460ff191660011790553391905f516020612b735f395f51905f52907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b5f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611b01575f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611b01575f8181525f516020612b935f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b61252f6115c3565b600281019081544381146127085761254781436112d9565b92600182018092116112e6576003830180549060ff5f516020612bb35f395f51905f52541680156126ff575b6126a4575b505043905560068201548061258d5750505050565b60ff60078401541660038110156111ca576002810361265057505060058201805493600490930192905f5b8581106125cf575050505050505b5f808080612124565b806125dc6001928461134b565b838060a01b0391549060031b1c16828060a01b0381165f5286602052858360405f2001548681612611575b50505050016125b8565b61261a9161168f565b916040519283527fa34db09d4126dd8dcd1d29f3df65c01dcac405127546e380add77fedca459ba760204394a45f858186612607565b919390925090600114612666575b5050506125c6565b61266f9161168f565b906040519182527fcef44ce1a1fc7ca1f3078daf79d3b60646d0e751bc72a69bff12f66c4aef3b8d60204393a35f808061265e565b6126bb6126b587600688015461168f565b83611318565b80915580820315612578576040519182526020820152827f0539ce444a515b8aa8769802297761fbec80b5b543c617714bf5e0611cf669db60404393a35f80612578565b50811515612573565b505050565b6001600160a01b03169190821561284a576127266115c3565b6005810161275061273682611325565b905460039190911b1c6001600160a01b0316861491611325565b905460039190911b1c6001600160a01b0316906128385750600490845f520160205260405f208282825414918261282a575b50506115b3571590811591612820575b5061279d5750600190565b6040516301ffc9a760e01b815263aee4dc4360e01b6004820152602081602481855afa908115611e12575f916127e5575b50611dfc5763a5fe861560e01b5f5260045260245ffd5b90506020813d602011612818575b8161280060209383611299565b8101031261022f5751801515810361022f575f6127ce565b3d91506127f3565b905015155f612792565b60010154149050825f612782565b63fda6c18760e01b5f5260045260245ffd5b6322a4ec7b60e11b5f5260045ffd5b6128616115c3565b90600182019182549061287482436112d9565b9081156129ac57600183018093116112e6575f94936004600583019201955b825481101561299f576128a6818461134b565b905460039190911b1c6001600160a01b03169081156129965760018060a01b0382165f52876020528460405f2054806128e7575b5050600191505b01612893565b906128f19161168f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692833b1561022f576040516340c10f1960e01b81526001600160a01b038216600482015260248101839052935f908590604490829084905af1908115611e12576001948992612986575b506040519283525f516020612b535f395f51905f5260204394a4845f6128da565b5f61299091611299565b5f612965565b600191506128e1565b5094505050504390554390565b5090925050565b6001810190825f528160205260405f2054155f146115b3578054600160401b8110156106a857612a036129ed82600187940185558461134b565b819391549060031b91821b915f19901b19161790565b905554915f5260205260405f2055600190565b906001820191815f528260205260405f20548015155f14612abf575f1981018181116112e65782545f198101919082116112e657818103612a8a575b50505080548015611ab2575f190190612a6b828261134b565b8154905f199060031b1b19169055555f526020525f6040812055600190565b612aaa612a9a6129ed938661134b565b90549060031b1c9283928661134b565b90555f528360205260405f20555f8080612a52565b505050505f90565b60ff5f516020612c335f395f51905f525460401c1615612ae357565b631afcd79f60e31b5f5260045ffdfebd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ffc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200075e09417c5070057df3eafe5054d52fa0b2a87d64a235e197963b615aedee8030c56d855d8df534c916b78eac3522e5fafd59f48799c4a97d42e80f6e08989607935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5502dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001bd3f0d2f1001a856d81215ceb86c548bdbc3bf52480a08978f8c3ea6e2bd421f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220d46b54882b4d4a139f908e1d4575b13fb4288eda84825de64ac62fbf8e30007664736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x1066 JUMPI POP DUP1 PUSH4 0x1156BDC1 EQ PUSH2 0x1037 JUMPI DUP1 PUSH4 0x13A7855D EQ PUSH2 0xFFD JUMPI DUP1 PUSH4 0x15D3B5D8 EQ PUSH2 0xF84 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0xF66 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0xF35 JUMPI DUP1 PUSH4 0x3067CB4C EQ PUSH2 0xE8D JUMPI DUP1 PUSH4 0x32BC934C EQ PUSH2 0xE70 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0xE2C JUMPI DUP1 PUSH4 0x389ED267 EQ PUSH2 0xE05 JUMPI DUP1 PUSH4 0x3AF5B073 EQ PUSH2 0xDDA JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0xD5C JUMPI DUP1 PUSH4 0x443990FA EQ PUSH2 0xD1A JUMPI DUP1 PUSH4 0x4887693C EQ PUSH2 0xCE7 JUMPI DUP1 PUSH4 0x48C3C62E EQ PUSH2 0xC61 JUMPI DUP1 PUSH4 0x49BDFCB0 EQ PUSH2 0xC24 JUMPI DUP1 PUSH4 0x4A1293B7 EQ PUSH2 0xBFE JUMPI DUP1 PUSH4 0x52C0E18C EQ PUSH2 0xBB8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB8A JUMPI DUP1 PUSH4 0x63FE3B56 EQ PUSH2 0xB21 JUMPI DUP1 PUSH4 0x647B3682 EQ PUSH2 0xADB JUMPI DUP1 PUSH4 0x697CF322 EQ PUSH2 0xAA6 JUMPI DUP1 PUSH4 0x79D5FC54 EQ PUSH2 0xA83 JUMPI DUP1 PUSH4 0x7C92330B EQ PUSH2 0xA33 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x9B2 JUMPI DUP1 PUSH4 0x84C48422 EQ PUSH2 0x952 JUMPI DUP1 PUSH4 0x87EE921C EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x8D8 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x883 JUMPI DUP1 PUSH4 0x93C911A8 EQ PUSH2 0x855 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xA3246AD3 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xC2CB3544 EQ PUSH2 0x773 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xC627B7A4 EQ PUSH2 0x3D0 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x39A JUMPI DUP1 PUSH4 0xCCC57490 EQ PUSH2 0x373 JUMPI DUP1 PUSH4 0xD012A15B EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xD48BEB1B EQ PUSH2 0x2FD JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xE038978E EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0xEE56977E EQ PUSH2 0x233 JUMPI PUSH4 0xF5B541A6 EQ PUSH2 0x1F5 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 DUP2 MSTORE RETURN JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x24B PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x60 PUSH2 0x256 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP1 PUSH1 0x3 PUSH1 0x2 DUP3 ADD SLOAD SWAP2 ADD SLOAD SWAP1 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x274 DUP5 PUSH2 0x127D JUMP JUMPDEST DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x21EE JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x4 CALLDATALOAD PUSH2 0x2E6 PUSH2 0x114F JUMP JUMPDEST SWAP1 PUSH2 0x2F8 PUSH2 0x2F3 DUP3 PUSH2 0x12FA JUMP JUMPDEST PUSH2 0x144E JUMP JUMPDEST PUSH2 0x164D JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x64 CALLDATALOAD PUSH1 0x44 CALLDATALOAD PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x1FE4 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0x340 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x348 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0x1E6E JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0x40 PUSH0 KECCAK256 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x3E9 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x3F1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x359 PUSH1 0x24 CALLDATALOAD PUSH1 0x4 CALLDATALOAD PUSH2 0x14C9 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x41A PUSH2 0x1165 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD SWAP1 PUSH1 0xFF DUP3 PUSH1 0x40 SHR AND ISZERO SWAP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP1 ISZERO SWAP1 DUP2 PUSH2 0x76B JUMPI JUMPDEST PUSH1 0x1 EQ SWAP1 DUP2 PUSH2 0x761 JUMPI JUMPDEST ISZERO SWAP1 DUP2 PUSH2 0x758 JUMPI JUMPDEST POP PUSH2 0x749 JUMPI PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x1 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x71D JUMPI JUMPDEST POP PUSH2 0x48B PUSH2 0x2AC7 JUMP JUMPDEST PUSH2 0x493 PUSH2 0x2AC7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 ISZERO PUSH2 0x70E JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x75E09417C5070057DF3EAFE5054D52FA0B2A87D64A235E197963B615AEDEE804 DUP1 SLOAD SWAP1 DUP4 SWAP1 SSTORE PUSH2 0x5F9 SWAP4 SWAP3 SWAP2 DUP3 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF134 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH32 0x97667070C54EF182B0F5858B034BEAC1B6F3089AA2D3188BB1E8929F4FA9B929 PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH32 0x448256DB8F8FB95EE3EAAF89C1051414494E85CEBB6057FCF996CC3D0CCFB457 DUP1 SLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP2 DUP3 SWAP1 SSTORE SWAP1 SWAP3 SWAP1 SWAP2 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2AF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 DUP1 LOG4 PUSH2 0x2355 JUMP JUMPDEST PUSH2 0x6BC JUMPI JUMPDEST POP PUSH2 0x607 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x628 SWAP2 PUSH1 0x1 DUP3 ADD DUP2 SSTORE PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE PUSH1 0x7 DUP2 ADD PUSH1 0x2 PUSH1 0xFF NOT DUP3 SLOAD AND OR SWAP1 SSTORE PUSH1 0x1 NUMBER SWAP2 ADD SSTORE PUSH2 0x656 JUMPI STOP JUMPDEST PUSH1 0xFF PUSH1 0x40 SHL NOT PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH2 0x707 SWAP1 PUSH32 0x955AF8CAAF1BB5FCA493CBB01CEFEB9E610A81071C268CD8B40C82100CBB956E PUSH2 0x29B3 JUMP JUMPDEST POP DUP2 PUSH2 0x5FE JUMP JUMPDEST PUSH4 0x395D0535 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH9 0xFFFFFFFFFFFFFFFFFF NOT AND PUSH9 0x10000000000000001 OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE DUP3 PUSH2 0x482 JUMP JUMPDEST PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST SWAP1 POP ISZERO DUP5 PUSH2 0x459 JUMP JUMPDEST ADDRESS EXTCODESIZE ISZERO SWAP2 POP PUSH2 0x451 JUMP JUMPDEST DUP5 SWAP2 POP PUSH2 0x447 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x80 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0x791 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x799 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x7A1 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x64 CALLDATALOAD SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B07 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x825 JUMPI PUSH2 0x821 DUP6 PUSH2 0x815 DUP2 DUP8 SUB DUP3 PUSH2 0x1299 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 DUP3 SWAP2 DUP3 PUSH2 0x117B JUMP JUMPDEST SUB SWAP1 RETURN JUMPDEST DUP3 SLOAD DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x7FE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0xFF PUSH1 0x7 PUSH2 0x873 PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD AND PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH2 0x11BD JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x89C PUSH2 0x114F JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH1 0xFF PUSH1 0x40 PUSH0 KECCAK256 SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x20 PUSH2 0x910 PUSH1 0x24 CALLDATALOAD PUSH1 0x40 PUSH0 KECCAK256 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x3 SWAP3 SWAP1 SWAP3 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x910 PUSH1 0x4 CALLDATALOAD PUSH1 0x5 PUSH2 0x94C PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH2 0x134B JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x96B PUSH2 0x1165 JUMP JUMPDEST PUSH2 0x973 PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0x97E PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x1 DUP2 SLOAD SWAP2 ADD SLOAD PUSH2 0x9A4 DUP2 DUP4 PUSH2 0x1318 JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 PUSH2 0x274 DUP5 PUSH2 0x127D JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x9CA PUSH2 0x13F2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND PUSH2 0xA24 JUMPI PUSH1 0x1 SWAP1 PUSH1 0xFF NOT AND OR PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0xD93C0665 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xA4E PUSH2 0x1165 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH2 0xA5A PUSH2 0x13A9 JUMP JUMPDEST PUSH1 0x4 PUSH2 0xA64 PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE DUP3 MSTORE DUP1 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xA9D PUSH2 0x15C3 JUMP JUMPDEST SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xAC4 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xACC PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xAD4 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH2 0x1E6E JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x60 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xAF9 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xB01 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xB09 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x44 CALLDATALOAD SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1B07 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x5 PUSH2 0xB3B PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH1 0x40 MLOAD SWAP1 DUP2 PUSH1 0x20 DUP3 SLOAD SWAP2 DUP3 DUP2 MSTORE ADD SWAP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0xB6B JUMPI PUSH2 0x821 DUP6 PUSH2 0x815 DUP2 DUP8 SUB DUP3 PUSH2 0x1299 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 PUSH1 0x1 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0xB54 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xBD1 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xBD9 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xBE6 PUSH1 0x4 CALLDATALOAD PUSH2 0x16A2 JUMP JUMPDEST PUSH0 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x5 PUSH2 0xC1A PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x1 PUSH2 0xC3E PUSH2 0x15C3 JUMP JUMPDEST ADD SLOAD NUMBER SUB PUSH2 0xC52 JUMPI PUSH1 0x20 NUMBER JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST PUSH1 0x20 PUSH2 0xC5C PUSH2 0x1E24 JUMP JUMPDEST PUSH2 0xC4A JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xC7A PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xC82 PUSH2 0x12BB JUMP JUMPDEST POP PUSH1 0x4 PUSH2 0xC8D PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x60 PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x2 PUSH1 0x40 MLOAD SWAP2 PUSH2 0xCB1 DUP4 PUSH2 0x127D JUMP JUMPDEST DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x20 DUP5 ADD MSTORE ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xD05 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xD0D PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xD15 PUSH2 0x1494 JUMP JUMPDEST PUSH2 0x1D9F JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0x359 PUSH2 0xD38 PUSH2 0x1165 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xD48 PUSH2 0x1494 JUMP JUMPDEST NUMBER SWAP1 PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1857 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xD74 PUSH2 0x13F2 JUMP JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xDCB JUMPI PUSH1 0xFF NOT AND PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH1 0x20 PUSH1 0x40 MLOAD CALLER DUP2 MSTORE LOG1 STOP JUMPDEST PUSH4 0x8DFC202B PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xDF2 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0xDFA PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0xBE6 NUMBER PUSH2 0x16A2 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0xE45 PUSH2 0x114F JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SUB PUSH2 0xE61 JUMPI PUSH2 0x2C5 SWAP1 PUSH1 0x4 CALLDATALOAD PUSH2 0x164D JUMP JUMPDEST PUSH4 0x334BD919 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH1 0x40 MLOAD PUSH3 0xF4240 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x80 PUSH2 0xEA8 PUSH2 0x1165 JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xEB7 DUP2 PUSH2 0x1261 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE ADD MSTORE PUSH2 0xED0 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB AND PUSH0 MSTORE PUSH1 0x4 DUP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP1 SLOAD SWAP2 PUSH1 0x2 PUSH1 0x1 DUP1 DUP4 ADD SLOAD SWAP4 ADD SLOAD SWAP2 ADD SLOAD SWAP2 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH2 0xF06 DUP2 PUSH2 0x1261 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 DUP4 MSTORE PUSH1 0x40 DUP2 ADD SWAP4 DUP5 MSTORE ADD SWAP3 DUP4 MSTORE PUSH1 0x40 MLOAD SWAP4 DUP5 MSTORE MLOAD PUSH1 0x20 DUP5 ADD MSTORE MLOAD PUSH1 0x40 DUP4 ADD MSTORE MLOAD PUSH1 0x60 DUP3 ADD MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x40 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x2C5 PUSH1 0x4 CALLDATALOAD PUSH2 0xF54 PUSH2 0x114F JUMP JUMPDEST SWAP1 PUSH2 0xF61 PUSH2 0x2F3 DUP3 PUSH2 0x12FA JUMP JUMPDEST PUSH2 0x1607 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x20 PUSH2 0xC4A PUSH1 0x4 CALLDATALOAD PUSH2 0x12FA JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x60 PUSH2 0xF9E PUSH2 0x12BB JUMP JUMPDEST PUSH2 0xFD7 PUSH2 0xFA9 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x6 PUSH2 0xFC5 DUP3 SLOAD PUSH0 DUP1 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 DUP3 DUP6 MSTORE ADD SLOAD SWAP1 DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2A1 PUSH1 0x40 MLOAD DUP1 SWAP3 PUSH1 0x40 DUP1 SWAP2 DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE ADD MLOAD SWAP2 ADD MSTORE JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x22F JUMPI PUSH2 0x102D PUSH1 0x20 SWAP2 PUSH2 0x1028 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x11DE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH2 0x1050 PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x1058 PUSH2 0x1494 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x359 NUMBER PUSH1 0x4 CALLDATALOAD PUSH2 0x14C9 JUMP JUMPDEST CALLVALUE PUSH2 0x22F JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x22F JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x22F JUMPI PUSH1 0x20 SWAP2 PUSH4 0x1E768DFF PUSH1 0xE2 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x113E JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x112D JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x111C JUMPI JUMPDEST DUP2 ISZERO PUSH2 0x10BD JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1CF1473B PUSH1 0xE3 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10D7 JUMPI JUMPDEST POP DUP4 PUSH2 0x10B6 JUMP JUMPDEST PUSH4 0x5A05180F PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x10F1 JUMPI JUMPDEST POP DUP4 PUSH2 0x10D0 JUMP JUMPDEST PUSH4 0x7965DB0B PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP DUP2 ISZERO PUSH2 0x110B JUMPI JUMPDEST POP DUP4 PUSH2 0x10EA JUMP JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x1104 JUMP JUMPDEST PUSH4 0x2461E317 PUSH1 0xE1 SHL DUP2 EQ SWAP2 POP PUSH2 0x10AF JUMP JUMPDEST PUSH4 0xA896602D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x10A8 JUMP JUMPDEST PUSH4 0x50D8541D PUSH1 0xE0 SHL DUP2 EQ SWAP2 POP PUSH2 0x10A1 JUMP JUMPDEST PUSH1 0x24 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x22F JUMPI JUMP JUMPDEST PUSH1 0x4 CALLDATALOAD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP3 SUB PUSH2 0x22F JUMPI JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 DUP2 DUP4 ADD SWAP3 DUP3 DUP2 MSTORE DUP5 MLOAD DUP1 SWAP5 MSTORE ADD SWAP3 ADD SWAP1 PUSH0 JUMPDEST DUP2 DUP2 LT PUSH2 0x119E JUMPI POP POP POP SWAP1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1191 JUMP JUMPDEST SWAP1 PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x11CA JUMPI MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x7 PUSH2 0x11E8 PUSH2 0x15C3 JUMP JUMPDEST ADD SWAP1 PUSH1 0xFF DUP3 SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x11CA JUMPI PUSH1 0x3 DUP3 LT ISZERO PUSH2 0x11CA JUMPI DUP1 DUP3 EQ PUSH2 0x1259 JUMPI PUSH2 0x1253 PUSH1 0x40 SWAP3 PUSH32 0x3F59746E46BFB9AF931035055D53B82D1B70968466065162B7DBF8E998AEE629 SWAP5 PUSH1 0xFF NOT DUP2 SLOAD AND PUSH1 0xFF DUP4 AND OR SWAP1 SSTORE PUSH2 0x1249 DUP5 MLOAD DUP1 SWAP5 PUSH2 0x11BD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 PUSH2 0x11BD JUMP JUMPDEST LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x60 DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x6A8 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 PUSH2 0x12C8 DUP3 PUSH2 0x127D JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 DUP3 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE ADD MSTORE JUMP JUMPDEST SWAP2 SWAP1 DUP3 SUB SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x1 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x12E6 JUMPI JUMP JUMPDEST DUP1 SLOAD ISZERO PUSH2 0x1337 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST DUP1 SLOAD DUP3 LT ISZERO PUSH2 0x1337 JUMPI PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD SWAP1 PUSH0 SWAP1 JUMP JUMPDEST DUP1 SLOAD SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL DUP4 LT ISZERO PUSH2 0x6A8 JUMPI DUP3 PUSH2 0x1383 SWAP2 PUSH1 0x1 PUSH2 0x13A7 SWAP6 ADD DUP2 SSTORE PUSH2 0x134B JUMP JUMPDEST SWAP1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL DUP4 DUP2 SHL NOT SWAP1 SWAP2 AND SWAP3 SWAP1 SWAP4 AND SWAP1 SWAP3 SHL OR SWAP1 SSTORE JUMP JUMPDEST JUMP JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x13CE JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST CALLER PUSH0 SWAP1 DUP2 MSTORE PUSH32 0x85AA68AE9688C2BBA3DC27A57A38BF2786C03751927FE89ECFD8B396D55FF133 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x142A JUMPI JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BD3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x147E JUMPI POP JUMP JUMPDEST PUSH4 0xE2517D3F PUSH1 0xE0 SHL PUSH0 MSTORE CALLER PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TLOAD PUSH2 0x14BA JUMPI PUSH1 0x1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BF3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE TSTORE JUMP JUMPDEST PUSH4 0x3EE5AEB5 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x14D1 PUSH2 0x15C3 JUMP JUMPDEST DUP1 SLOAD SWAP3 DUP4 DUP4 EQ PUSH2 0x15BA JUMPI PUSH2 0x14E3 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x15B3 JUMPI PUSH2 0x1518 PUSH1 0x5 DUP3 ADD PUSH2 0x1512 PUSH2 0x14FB DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1545 DUP2 DUP6 PUSH2 0x1318 JUMP JUMPDEST DUP6 GT PUSH2 0x1599 JUMPI SWAP3 DUP5 SWAP3 DUP2 SWAP3 PUSH2 0x1586 PUSH32 0x2925BE3E6D4B2CBCEC6C06D5060FB3B53F160410555E45EE0A1F6DC7AE9B24C0 SWAP8 PUSH2 0x1581 DUP6 PUSH1 0x40 SWAP10 PUSH2 0x1318 JUMP JUMPDEST PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE SSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE LOG1 PUSH1 0x1 SWAP1 JUMP JUMPDEST DUP4 DUP6 PUSH4 0x2C421F2B PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP POP POP PUSH0 SWAP1 JUMP JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH32 0x109CDEB08B6FCB52A0F8A35AF1BF023AFDACDC6E602B08424B2171D0F4FA3CD4 DUP2 MSTORE PUSH1 0x20 DUP3 MSTORE PUSH2 0x15FC PUSH1 0x40 DUP4 PUSH2 0x1299 JUMP JUMPDEST SWAP1 MLOAD SWAP1 KECCAK256 PUSH1 0xFF NOT AND SWAP1 JUMP JUMPDEST PUSH2 0x1611 DUP3 DUP3 PUSH2 0x23ED JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x161C JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x1649 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x29B3 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x1657 DUP3 DUP3 PUSH2 0x248B JUMP JUMPDEST SWAP2 DUP3 PUSH2 0x1662 JUMPI POP POP SWAP1 JUMP JUMPDEST PUSH0 SWAP2 DUP3 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH2 0x1649 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2A16 JUMP JUMPDEST DUP2 DUP2 MUL SWAP3 SWAP2 DUP2 ISZERO SWAP2 DUP5 DIV EQ OR ISZERO PUSH2 0x12E6 JUMPI JUMP JUMPDEST PUSH2 0x16AA PUSH2 0x2527 JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SLOAD DUP4 DUP2 GT ISZERO DUP1 PUSH2 0x184D JUMPI JUMPDEST ISZERO PUSH2 0x1833 JUMPI PUSH2 0x16D1 SWAP1 DUP5 PUSH2 0x12D9 JUMP JUMPDEST SWAP2 DUP3 ISZERO PUSH2 0x182D JUMPI DUP4 DUP2 SLOAD SWAP3 PUSH2 0x16E6 DUP6 DUP6 PUSH2 0x168F JUMP JUMPDEST SWAP3 DUP3 PUSH1 0x3 DUP3 ADD SLOAD SWAP6 DUP6 DUP8 LT PUSH0 EQ PUSH2 0x1826 JUMPI PUSH2 0x1701 DUP8 DUP8 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 JUMPDEST DUP4 PUSH2 0x17A8 JUMPI JUMPDEST POP POP POP POP SSTORE PUSH2 0x1716 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 NUMBER DUP6 SUB PUSH2 0x178A JUMPI PUSH0 SWAP4 JUMPDEST DUP5 DUP5 SUB PUSH2 0x1734 JUMPI JUMPDEST POP POP PUSH1 0x3 SWAP2 POP ADD SSTORE SWAP1 JUMP JUMPDEST PUSH2 0x173E SWAP1 DUP7 PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD DUP1 SWAP2 GT PUSH2 0x12E6 JUMPI PUSH32 0x1A45018BDAB6039C806FAC73D617B3BC5C6A2A0F22F6F90D2CA202B083087F99 PUSH1 0x60 PUSH1 0x3 SWAP6 DUP9 SWAP5 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE DUP9 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD MSTORE LOG3 PUSH0 DUP1 PUSH2 0x1729 JUMP JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x17A2 JUMPI PUSH2 0x179C DUP2 DUP5 PUSH2 0x12D9 JUMP JUMPDEST SWAP4 PUSH2 0x1721 JUMP JUMPDEST PUSH0 PUSH2 0x179C JUMP JUMPDEST PUSH2 0x17E8 PUSH2 0x17F0 SWAP3 PUSH2 0x17BB PUSH1 0x5 DUP5 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 SWAP1 SWAP4 ADD SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST PUSH2 0x17FA DUP9 DUP3 PUSH2 0x168F JUMP JUMPDEST DUP1 DUP5 LT ISZERO PUSH2 0x1815 JUMPI POP PUSH2 0x180C SWAP3 PUSH2 0x21EE JUMP JUMPDEST PUSH0 DUP3 DUP2 DUP1 PUSH2 0x1709 JUMP JUMPDEST SWAP1 POP PUSH2 0x1821 SWAP3 DUP9 PUSH2 0x1FE4 JUMP JUMPDEST PUSH2 0x180C JUMP JUMPDEST PUSH0 SWAP3 PUSH2 0x1703 JUMP JUMPDEST POP POP POP SWAP1 JUMP JUMPDEST DUP4 PUSH4 0xA0D2B9DB PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE NUMBER PUSH1 0x44 MSTORE PUSH1 0x64 PUSH0 REVERT JUMPDEST POP NUMBER DUP5 GT ISZERO PUSH2 0x16C2 JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x1864 PUSH0 DUP5 DUP5 PUSH2 0x270D JUMP JUMPDEST ISZERO PUSH2 0x1259 JUMPI PUSH2 0x1871 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x1B01 JUMPI PUSH2 0x187F DUP2 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1896 PUSH2 0x14FB PUSH1 0x5 PUSH2 0x1890 PUSH2 0x15C3 JUMP JUMPDEST ADD PUSH2 0x1325 JUMP JUMPDEST POP PUSH2 0x189F PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x18C4 PUSH1 0x5 DUP4 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1903 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x18F8 SWAP2 PUSH2 0x1318 JUMP JUMPDEST SWAP5 ADD SWAP4 DUP5 SLOAD SWAP1 PUSH2 0x1318 JUMP JUMPDEST DUP1 DUP7 GT PUSH2 0x1AEB JUMPI SWAP2 PUSH1 0x6 SWAP2 PUSH2 0x191B DUP8 PUSH2 0x1929 SWAP6 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE ADD SWAP2 DUP3 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1933 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1AE4 JUMPI JUMPDEST ISZERO PUSH2 0x19C2 JUMPI SWAP2 PUSH0 PUSH1 0x1 DUP4 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 DUP5 PUSH1 0x40 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x19B7 JUMPI JUMPDEST PUSH2 0x19A4 JUMPI JUMPDEST POP POP DUP7 DUP2 SSTORE ADD SSTORE JUMPDEST DUP2 MLOAD SWAP4 DUP5 MSTORE PUSH0 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x19B0 SWAP3 ADD PUSH2 0x1360 JUMP JUMPDEST PUSH0 DUP5 PUSH2 0x1981 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x197C JUMP JUMPDEST POP POP SWAP1 PUSH2 0x19CD PUSH2 0x15C3 JUMP JUMPDEST SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 PUSH1 0x5 DUP5 ADD SWAP1 PUSH1 0x1 JUMPDEST DUP3 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1AC6 JUMPI DUP5 PUSH2 0x19F6 DUP4 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A16 JUMPI POP PUSH1 0x1 ADD PUSH2 0x19E1 JUMP JUMPDEST SWAP1 PUSH0 SWAP7 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI PUSH2 0x1383 PUSH2 0x1A38 PUSH2 0x1A51 SWAP4 DUP8 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP7 PUSH2 0x134B JUMP JUMPDEST DUP3 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP5 PUSH1 0x40 SWAP5 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1A95 PUSH2 0x1A80 DUP4 DUP4 PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP4 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1989 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP SWAP1 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 SWAP4 POP PUSH1 0x40 SWAP2 POP PUSH2 0x1989 JUMP JUMPDEST POP PUSH0 PUSH2 0x1957 JUMP JUMPDEST DUP6 PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST POP POP PUSH0 SWAP1 JUMP JUMPDEST SWAP3 SWAP2 SWAP1 SWAP2 PUSH2 0x1B16 DUP3 DUP5 DUP7 PUSH2 0x270D JUMP JUMPDEST ISZERO PUSH2 0x15BA JUMPI PUSH2 0x1B23 PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x15B3 JUMPI PUSH2 0x1B31 DUP4 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1B42 PUSH2 0x14FB PUSH1 0x5 PUSH2 0x1890 PUSH2 0x15C3 JUMP JUMPDEST POP PUSH2 0x1B4B PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SWAP1 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SWAP2 PUSH2 0x1B70 PUSH1 0x5 DUP4 ADD PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SLOAD PUSH2 0x1BA4 SWAP2 PUSH1 0x1 SWAP2 PUSH2 0x18F8 SWAP2 PUSH2 0x1318 JUMP JUMPDEST DUP1 PUSH2 0x1BAF DUP7 DUP9 PUSH2 0x1318 JUMP JUMPDEST GT PUSH2 0x1BBA DUP7 DUP9 PUSH2 0x1318 JUMP JUMPDEST SWAP1 PUSH2 0x1D8A JUMPI POP PUSH1 0x6 PUSH2 0x1BEC SWAP4 DUP7 SWAP4 PUSH2 0x1BD9 DUP6 PUSH2 0x1581 DUP12 PUSH2 0x1BE7 SWAP8 PUSH2 0x12D9 JUMP JUMPDEST SWAP1 SSTORE ADD SWAP4 DUP5 SLOAD SWAP1 SLOAD SWAP1 PUSH2 0x12D9 JUMP JUMPDEST PUSH2 0x1318 JUMP JUMPDEST SWAP1 SSTORE PUSH2 0x1BF6 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP4 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1D81 JUMPI JUMPDEST ISZERO PUSH2 0x1C86 JUMPI SWAP2 DUP1 PUSH1 0x1 DUP4 PUSH1 0x40 SWAP6 DUP9 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP9 SWAP10 SWAP7 SLOAD ISZERO DUP1 PUSH2 0x1C7B JUMPI JUMPDEST PUSH2 0x1C68 JUMPI JUMPDEST POP POP DUP8 DUP2 SSTORE ADD SSTORE JUMPDEST DUP3 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 LOG2 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1C74 SWAP3 ADD PUSH2 0x1360 JUMP JUMPDEST PUSH0 DUP6 PUSH2 0x1C46 JUMP JUMPDEST POP DUP4 DUP4 ADD SLOAD ISZERO PUSH2 0x1C41 JUMP JUMPDEST POP POP SWAP2 PUSH2 0x1C91 PUSH2 0x15C3 JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP2 PUSH1 0x5 DUP6 ADD SWAP2 PUSH1 0x1 JUMPDEST DUP4 SLOAD DUP1 DUP3 LT ISZERO PUSH2 0x1D62 JUMPI DUP6 PUSH2 0x1CBA DUP4 DUP8 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1CDA JUMPI POP PUSH1 0x1 ADD PUSH2 0x1CA5 JUMP JUMPDEST SWAP1 PUSH0 SWAP8 SWAP3 SWAP4 SWAP5 SWAP6 SWAP7 SWAP8 NOT DUP3 ADD SWAP2 DUP3 GT PUSH2 0x12E6 JUMPI PUSH2 0x1383 PUSH2 0x1CFD PUSH2 0x1D16 SWAP4 DUP9 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 DUP8 PUSH2 0x134B JUMP JUMPDEST DUP4 SLOAD SWAP1 DUP2 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP6 PUSH1 0x40 SWAP6 PUSH1 0x4 SWAP4 PUSH0 NOT ADD SWAP1 PUSH2 0x1D45 PUSH2 0x1A80 DUP4 DUP4 PUSH2 0x134B JUMP JUMPDEST SSTORE PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 DUP5 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE PUSH2 0x1C4E JUMP JUMPDEST POP POP SWAP1 SWAP2 POP PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C13 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP4 SWAP5 POP PUSH1 0x40 SWAP3 POP PUSH2 0x1C4E JUMP JUMPDEST POP DUP3 ISZERO ISZERO PUSH2 0x1C1A JUMP JUMPDEST PUSH4 0x162930E3 PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 MSTORE PUSH1 0x44 PUSH0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 ISZERO PUSH2 0x1DFC JUMPI PUSH1 0x4 PUSH2 0x1DB8 PUSH2 0x15C3 JUMP JUMPDEST ADD DUP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD DUP1 SLOAD NUMBER GT ISZERO PUSH2 0x1E1D JUMPI NUMBER SWAP1 SSTORE DUP1 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH0 DUP1 SWAP2 PUSH1 0x4 PUSH1 0x40 MLOAD DUP1 SWAP5 DUP2 SWAP4 PUSH4 0x1EFC6B41 PUSH1 0xE1 SHL DUP4 MSTORE GAS CALL DUP1 ISZERO PUSH2 0x1E12 JUMPI PUSH2 0x1E02 JUMPI JUMPDEST POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x1E0C SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x1E2C PUSH2 0x15C3 JUMP JUMPDEST PUSH2 0x1E34 PUSH2 0x2527 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND PUSH2 0x1E67 JUMPI PUSH1 0x3 ADD SLOAD ISZERO PUSH2 0x1E5F JUMPI PUSH2 0x1E5C NUMBER PUSH2 0x16A2 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x1E5C PUSH2 0x2859 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E76 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x5 DUP3 ADD SWAP1 PUSH2 0x1E85 DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND SWAP7 PUSH1 0x3 SWAP4 SWAP1 SWAP4 SHL SWAP2 SWAP1 SWAP2 SHR AND SWAP4 SWAP1 DUP6 DUP6 EQ PUSH2 0x1FD9 JUMPI DUP4 SLOAD PUSH1 0x1 JUMPDEST DUP2 DUP2 LT PUSH2 0x1F9C JUMPI POP POP PUSH2 0x1EBD PUSH2 0x1E24 JUMP JUMPDEST LT PUSH2 0x1F93 JUMPI PUSH1 0x4 PUSH2 0x1EF6 SWAP2 PUSH2 0x1ED1 DUP7 PUSH2 0x1D9F JUMP JUMPDEST POP PUSH2 0x1EDB DUP5 PUSH2 0x1D9F JUMP JUMPDEST POP ADD SWAP2 DUP6 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH2 0x1383 PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD SWAP5 PUSH2 0x1325 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP7 DUP4 MSTORE SWAP2 KECCAK256 SWAP1 DUP1 DUP3 SUB PUSH2 0x1F75 JUMPI JUMPDEST POP POP PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH0 MSTORE DUP1 PUSH1 0x20 MSTORE PUSH0 PUSH1 0x2 PUSH1 0x40 DUP3 KECCAK256 DUP3 DUP2 SSTORE DUP3 PUSH1 0x1 DUP3 ADD SSTORE ADD SSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x2 PUSH1 0x40 PUSH0 KECCAK256 ADD SSTORE PUSH31 0xF06471E88E0BC1DB6B6126EFDB09F80B597E6DDC145FF0DCABD12AFAB4EC57 PUSH0 DUP1 LOG3 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SWAP3 SLOAD DUP5 SSTORE PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 DUP6 ADD SSTORE ADD SLOAD SWAP2 ADD SSTORE PUSH0 DUP1 PUSH2 0x1F1C JUMP JUMPDEST POP POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST DUP8 PUSH2 0x1FA7 DUP3 DUP9 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FC6 JUMPI PUSH1 0x1 ADD PUSH2 0x1EAC JUMP JUMPDEST DUP8 PUSH4 0xF158185D PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP4 SWAP1 SWAP4 SWAP3 SWAP2 SWAP3 PUSH2 0x1FF2 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x12E6 JUMPI PUSH1 0x1 SWAP7 SWAP6 PUSH1 0x4 PUSH1 0x5 DUP5 ADD SWAP4 ADD SWAP8 JUMPDEST DUP4 SLOAD DUP2 LT ISZERO PUSH2 0x210B JUMPI PUSH2 0x2024 DUP2 DUP6 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP7 SWAP1 DUP1 PUSH2 0x205B JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x2011 JUMP JUMPDEST SWAP1 PUSH2 0x2065 SWAP2 PUSH2 0x168F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x20FB JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP6 PUSH0 PUSH2 0x204F JUMP JUMPDEST PUSH0 PUSH2 0x2105 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x20EC JUMP JUMPDEST POP SWAP2 SWAP4 SWAP5 SWAP6 SWAP1 SWAP7 POP PUSH2 0x211D SWAP3 POP PUSH2 0x12D9 JUMP JUMPDEST SWAP1 DUP2 PUSH2 0x212A JUMPI JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2133 SWAP1 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2124 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 PUSH0 SWAP1 DUP4 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP3 PUSH1 0x20 SWAP3 PUSH2 0x21DE JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 PUSH0 DUP1 DUP1 DUP1 PUSH2 0x2124 JUMP JUMPDEST PUSH0 PUSH2 0x21E8 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x21CD JUMP JUMPDEST SWAP2 SWAP1 SWAP2 PUSH2 0x21F9 PUSH2 0x15C3 JUMP JUMPDEST SWAP3 DUP1 ISZERO DUP1 DUP1 ISZERO PUSH2 0x234D JUMPI JUMPDEST PUSH2 0x2346 JUMPI PUSH1 0x1 DUP6 ADD SLOAD SWAP3 PUSH1 0x1 DUP5 ADD DUP1 SWAP5 GT PUSH2 0x12E6 JUMPI PUSH1 0x4 DUP7 ADD SWAP7 SWAP6 PUSH1 0x5 ADD PUSH1 0x1 JUMPDEST DUP2 SLOAD DUP2 LT ISZERO PUSH2 0x233B JUMPI PUSH2 0x2238 DUP2 DUP4 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP12 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP1 PUSH2 0x226F JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP ADD PUSH2 0x2225 JUMP JUMPDEST PUSH2 0x2279 SWAP1 DUP7 PUSH2 0x168F JUMP JUMPDEST SWAP1 PUSH2 0x2327 JUMPI PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP1 DUP8 SWAP1 DIV DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP2 DUP3 ISZERO PUSH2 0x1E12 JUMPI PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 DUP12 SWAP4 PUSH1 0x1 SWAP8 DUP15 SWAP7 PUSH2 0x2317 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE LOG4 DUP5 PUSH0 PUSH2 0x2263 JUMP JUMPDEST PUSH0 PUSH2 0x2321 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x2308 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP1 POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x2204 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 SWAP1 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x23E8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP2 SWAP1 PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B73 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST POP PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1B01 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1B01 JUMPI PUSH0 DUP2 DUP2 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B93 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND DUP1 DUP5 MSTORE SWAP5 SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE CALLER SWAP3 SWAP2 SWAP1 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP1 DUP1 LOG4 PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x252F PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SWAP1 DUP2 SLOAD NUMBER DUP2 EQ PUSH2 0x2708 JUMPI PUSH2 0x2547 DUP2 NUMBER PUSH2 0x12D9 JUMP JUMPDEST SWAP3 PUSH1 0x1 DUP3 ADD DUP1 SWAP3 GT PUSH2 0x12E6 JUMPI PUSH1 0x3 DUP4 ADD DUP1 SLOAD SWAP1 PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2BB3 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD AND DUP1 ISZERO PUSH2 0x26FF JUMPI JUMPDEST PUSH2 0x26A4 JUMPI JUMPDEST POP POP NUMBER SWAP1 SSTORE PUSH1 0x6 DUP3 ADD SLOAD DUP1 PUSH2 0x258D JUMPI POP POP POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0x7 DUP5 ADD SLOAD AND PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x11CA JUMPI PUSH1 0x2 DUP2 SUB PUSH2 0x2650 JUMPI POP POP PUSH1 0x5 DUP3 ADD DUP1 SLOAD SWAP4 PUSH1 0x4 SWAP1 SWAP4 ADD SWAP3 SWAP1 PUSH0 JUMPDEST DUP6 DUP2 LT PUSH2 0x25CF JUMPI POP POP POP POP POP POP JUMPDEST PUSH0 DUP1 DUP1 DUP1 PUSH2 0x2124 JUMP JUMPDEST DUP1 PUSH2 0x25DC PUSH1 0x1 SWAP3 DUP5 PUSH2 0x134B JUMP JUMPDEST DUP4 DUP1 PUSH1 0xA0 SHL SUB SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SHR AND DUP3 DUP1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH0 MSTORE DUP7 PUSH1 0x20 MSTORE DUP6 DUP4 PUSH1 0x40 PUSH0 KECCAK256 ADD SLOAD DUP7 DUP2 PUSH2 0x2611 JUMPI JUMPDEST POP POP POP POP ADD PUSH2 0x25B8 JUMP JUMPDEST PUSH2 0x261A SWAP2 PUSH2 0x168F JUMP JUMPDEST SWAP2 PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH32 0xA34DB09D4126DD8DCD1D29F3DF65C01DCAC405127546E380ADD77FEDCA459BA7 PUSH1 0x20 NUMBER SWAP5 LOG4 PUSH0 DUP6 DUP2 DUP7 PUSH2 0x2607 JUMP JUMPDEST SWAP2 SWAP4 SWAP1 SWAP3 POP SWAP1 PUSH1 0x1 EQ PUSH2 0x2666 JUMPI JUMPDEST POP POP POP PUSH2 0x25C6 JUMP JUMPDEST PUSH2 0x266F SWAP2 PUSH2 0x168F JUMP JUMPDEST SWAP1 PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xCEF44CE1A1FC7CA1F3078DAF79D3B60646D0E751BC72A69BFF12F66C4AEF3B8D PUSH1 0x20 NUMBER SWAP4 LOG3 PUSH0 DUP1 DUP1 PUSH2 0x265E JUMP JUMPDEST PUSH2 0x26BB PUSH2 0x26B5 DUP8 PUSH1 0x6 DUP9 ADD SLOAD PUSH2 0x168F JUMP JUMPDEST DUP4 PUSH2 0x1318 JUMP JUMPDEST DUP1 SWAP2 SSTORE DUP1 DUP3 SUB ISZERO PUSH2 0x2578 JUMPI PUSH1 0x40 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH32 0x539CE444A515B8AA8769802297761FBEC80B5B543C617714BF5E0611CF669DB PUSH1 0x40 NUMBER SWAP4 LOG3 PUSH0 DUP1 PUSH2 0x2578 JUMP JUMPDEST POP DUP2 ISZERO ISZERO PUSH2 0x2573 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 DUP3 ISZERO PUSH2 0x284A JUMPI PUSH2 0x2726 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x5 DUP2 ADD PUSH2 0x2750 PUSH2 0x2736 DUP3 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 EQ SWAP2 PUSH2 0x1325 JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x2838 JUMPI POP PUSH1 0x4 SWAP1 DUP5 PUSH0 MSTORE ADD PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 DUP3 DUP3 DUP3 SLOAD EQ SWAP2 DUP3 PUSH2 0x282A JUMPI JUMPDEST POP POP PUSH2 0x15B3 JUMPI ISZERO SWAP1 DUP2 ISZERO SWAP2 PUSH2 0x2820 JUMPI JUMPDEST POP PUSH2 0x279D JUMPI POP PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH1 0x24 DUP2 DUP6 GAS STATICCALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH0 SWAP2 PUSH2 0x27E5 JUMPI JUMPDEST POP PUSH2 0x1DFC JUMPI PUSH4 0xA5FE8615 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2818 JUMPI JUMPDEST DUP2 PUSH2 0x2800 PUSH1 0x20 SWAP4 DUP4 PUSH2 0x1299 JUMP JUMPDEST DUP2 ADD SUB SLT PUSH2 0x22F JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0x22F JUMPI PUSH0 PUSH2 0x27CE JUMP JUMPDEST RETURNDATASIZE SWAP2 POP PUSH2 0x27F3 JUMP JUMPDEST SWAP1 POP ISZERO ISZERO PUSH0 PUSH2 0x2792 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD EQ SWAP1 POP DUP3 PUSH0 PUSH2 0x2782 JUMP JUMPDEST PUSH4 0xFDA6C187 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH4 0x22A4EC7B PUSH1 0xE1 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST PUSH2 0x2861 PUSH2 0x15C3 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP3 SLOAD SWAP1 PUSH2 0x2874 DUP3 NUMBER PUSH2 0x12D9 JUMP JUMPDEST SWAP1 DUP2 ISZERO PUSH2 0x29AC JUMPI PUSH1 0x1 DUP4 ADD DUP1 SWAP4 GT PUSH2 0x12E6 JUMPI PUSH0 SWAP5 SWAP4 PUSH1 0x4 PUSH1 0x5 DUP4 ADD SWAP3 ADD SWAP6 JUMPDEST DUP3 SLOAD DUP2 LT ISZERO PUSH2 0x299F JUMPI PUSH2 0x28A6 DUP2 DUP5 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 SWAP2 SHL SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP2 ISZERO PUSH2 0x2996 JUMPI PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH0 MSTORE DUP8 PUSH1 0x20 MSTORE DUP5 PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 PUSH2 0x28E7 JUMPI JUMPDEST POP POP PUSH1 0x1 SWAP2 POP JUMPDEST ADD PUSH2 0x2893 JUMP JUMPDEST SWAP1 PUSH2 0x28F1 SWAP2 PUSH2 0x168F JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 DUP4 EXTCODESIZE ISZERO PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH4 0x40C10F19 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP4 PUSH0 SWAP1 DUP6 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP5 SWAP1 GAS CALL SWAP1 DUP2 ISZERO PUSH2 0x1E12 JUMPI PUSH1 0x1 SWAP5 DUP10 SWAP3 PUSH2 0x2986 JUMPI JUMPDEST POP PUSH1 0x40 MLOAD SWAP3 DUP4 MSTORE PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2B53 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE PUSH1 0x20 NUMBER SWAP5 LOG4 DUP5 PUSH0 PUSH2 0x28DA JUMP JUMPDEST PUSH0 PUSH2 0x2990 SWAP2 PUSH2 0x1299 JUMP JUMPDEST PUSH0 PUSH2 0x2965 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP PUSH2 0x28E1 JUMP JUMPDEST POP SWAP5 POP POP POP POP NUMBER SWAP1 SSTORE NUMBER SWAP1 JUMP JUMPDEST POP SWAP1 SWAP3 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 DUP3 PUSH0 MSTORE DUP2 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD ISZERO PUSH0 EQ PUSH2 0x15B3 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 LT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x2A03 PUSH2 0x29ED DUP3 PUSH1 0x1 DUP8 SWAP5 ADD DUP6 SSTORE DUP5 PUSH2 0x134B JUMP JUMPDEST DUP2 SWAP4 SWAP2 SLOAD SWAP1 PUSH1 0x3 SHL SWAP2 DUP3 SHL SWAP2 PUSH0 NOT SWAP1 SHL NOT AND OR SWAP1 JUMP JUMPDEST SWAP1 SSTORE SLOAD SWAP2 PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST SWAP1 PUSH1 0x1 DUP3 ADD SWAP2 DUP2 PUSH0 MSTORE DUP3 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SLOAD DUP1 ISZERO ISZERO PUSH0 EQ PUSH2 0x2ABF JUMPI PUSH0 NOT DUP2 ADD DUP2 DUP2 GT PUSH2 0x12E6 JUMPI DUP3 SLOAD PUSH0 NOT DUP2 ADD SWAP2 SWAP1 DUP3 GT PUSH2 0x12E6 JUMPI DUP2 DUP2 SUB PUSH2 0x2A8A JUMPI JUMPDEST POP POP POP DUP1 SLOAD DUP1 ISZERO PUSH2 0x1AB2 JUMPI PUSH0 NOT ADD SWAP1 PUSH2 0x2A6B DUP3 DUP3 PUSH2 0x134B JUMP JUMPDEST DUP2 SLOAD SWAP1 PUSH0 NOT SWAP1 PUSH1 0x3 SHL SHL NOT AND SWAP1 SSTORE SSTORE PUSH0 MSTORE PUSH1 0x20 MSTORE PUSH0 PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH2 0x2AAA PUSH2 0x2A9A PUSH2 0x29ED SWAP4 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SLOAD SWAP1 PUSH1 0x3 SHL SHR SWAP3 DUP4 SWAP3 DUP7 PUSH2 0x134B JUMP JUMPDEST SWAP1 SSTORE PUSH0 MSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0x40 PUSH0 KECCAK256 SSTORE PUSH0 DUP1 DUP1 PUSH2 0x2A52 JUMP JUMPDEST POP POP POP POP PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0xFF PUSH0 MLOAD PUSH1 0x20 PUSH2 0x2C33 PUSH0 CODECOPY PUSH0 MLOAD SWAP1 PUSH0 MSTORE SLOAD PUSH1 0x40 SHR AND ISZERO PUSH2 0x2AE3 JUMPI JUMP JUMPDEST PUSH4 0x1AFCD79F PUSH1 0xE3 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT INVALID 0xBD PUSH26 0xB86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E12 SWAP16 SIGNEXTEND STOP SELFDESTRUCT 0xC1 0xF6 INVALID 0x24 PUSH3 0x1CE81E 0xC5 DUP3 PUSH29 0xAF0253CADB74709B061630E6B55E8237170593200075E09417C5070057 0xDF RETURNDATACOPY 0xAF JUMPF 0x54D MSTORE STATICCALL SIGNEXTEND 0x2A DUP8 0xD6 BLOBBASEFEE 0x23 MCOPY NOT PUSH26 0x63B615AEDEE8030C56D855D8DF534C916B78EAC3522E5FAFD59F BASEFEE PUSH26 0x9C4A97D42E80F6E08989607935BD0AE54BC31F548C14DBA4D37C TLOAD PUSH5 0xB3F8CA900C 0xB4 PUSH9 0xFB8ABD54D5894F5502 0xDD PUSH28 0xC7DEC4DCEEDDA775E58DD541E08A116C6C53815C0BD028192F7B6268 STOP 0xCD MCOPY DATALOADN 0x5C6E XOR PUSH31 0x77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300139C2898040E CALL PUSH10 0x10DC9F44DC697DF79363 0xDA PUSH23 0x7D8BC92F2E310312B816E46D9B779B17422D0DF9222301 DUP12 ORIGIN 0xB4 DATALOADN 0xFA46 RJUMP 0x7172 RETURNDATASIZE PUSH9 0x17E2486D003BECC55F STOP SHL 0xD3 CREATE 0xD2 CALL STOP BYTE DUP6 PUSH14 0x81215CEB86C548BDBC3BF52480A0 DUP10 PUSH25 0xF8C3EA6E2BD421F0C57E16840DF040F15088DC2F81FE391C39 0x23 0xBE 0xC7 RETURNDATACOPY 0x23 0xA9 PUSH7 0x2EFC9C229C6A00 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 PUSH12 0x54882B4D4A139F908E1D4575 0xB1 EXTCODEHASH 0xB4 0x28 DUP15 0xDA DUP5 DUP3 TSTORE DUPN 0x4A 0xC6 0x2F 0xBF DUP15 ADDRESS STOP PUSH23 0x64736F6C63430008210033000000000000000000000000 ","sourceMap":"395:1631:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;3245:26:45;395:1631:47;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;;;11931:35:44;;:::i;:::-;59736:23;;;395:1631:47;59799:22:44;59858:19;59799:22;;;395:1631:47;59858:19:44;;395:1631:47;;;;;;;;:::i;:::-;;;59677:215:44;;;395:1631:47;;59677:215:44;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;1286:13;395:1631;;;;;;1286:13;:::i;:::-;395:1631;;;;;;;-1:-1:-1;;395:1631:47;;;;5815:26:21;395:1631:47;;;;:::i;:::-;5785:18:21;3283:4;5785:18;;;:::i;:::-;3283:4;:::i;:::-;5815:26;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;2003:13;395:1631;;;;;;;;2003:13;:::i;395:1631::-;;;;;;-1:-1:-1;;395:1631:47;;;;;47910:50:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;;47910:50:44;;:::i;:::-;395:1631:47;-1:-1:-1;;;;;;;;;;;3556:68:36;395:1631:47;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;39944:62:44;395:1631:47;;;;39944:62:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;4301:16:23;395:1631:47;;;;4724:16:23;;:34;;;;395:1631:47;4803:1:23;4788:16;:50;;;;395:1631:47;4853:13:23;:30;;;;395:1631:47;4849:91:23;;;-1:-1:-1;;395:1631:47;;4803:1:23;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;4977:67:23;;395:1631:47;6891:76:23;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;395:1631:47;;;5377:22:45;;395:1631:47;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;4967:24:21;395:1631:47;;;;;;4241:31:22;;6946:18:21;2399:26:45;;;-1:-1:-1;;;;;;;;;;;7025:52:21;395:1631:47;7025:52:21;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;4967:24:21;395:1631:47;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;2399:26:45;;395:1631:47;;-1:-1:-1;;;;;;;;;;;7025:52:21;395:1631:47;7025:52:21;3245:26:45;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;4967:24:21;395:1631:47;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;2399:26:45;;395:1631:47;;-1:-1:-1;;;;;;;;;;;7025:52:21;395:1631:47;7025:52:21;4241:31:22;:::i;:::-;4282:71;;395:1631:47;11931:35:44;;;:::i;:::-;20921:17;;;395:1631:47;;-1:-1:-1;;;395:1631:47;;;;;;;4803:1:23;395:1631:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20966:22:44;;;20991:30;395:1631:47;;;;;;;;4803:1:23;21312:12:44;21286:23;;395:1631:47;5064:101:23;;395:1631:47;5064:101:23;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;-1:-1:-1;;;;;;;;;;;395:1631:47;5140:14:23;395:1631:47;;;4803:1:23;395:1631:47;;5140:14:23;395:1631:47;;;;;;;;;;;;;4282:71:22;-1:-1:-1;;;;;;;;;;;395:1631:47;;-1:-1:-1;;;;;;;;;;;395:1631:47;;11511:50:41;;395:1631:47;11511:50:41;:::i;:::-;;4282:71:22;;;395:1631:47;;;;;;;;;4977:67:23;-1:-1:-1;;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;4977:67:23;;;4849:91;4906:23;;;395:1631:47;4906:23:23;395:1631:47;;4906:23:23;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:23;;4724:34;;;-1:-1:-1;4724:34:23;;395:1631:47;;;;;;-1:-1:-1;;395:1631:47;;;;;47275:97:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;;;;;;;;;-1:-1:-1;;;;;395:1631:47;47275:97:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;42084:51:44;11931:35;;:::i;:::-;42084:51;395:1631:47;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;3949:31:21;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;5853:18:41;395:1631:47;;;;;5853:18:41;:::i;:::-;395:1631:47;;;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;60480:53:44;395:1631:47;;60480:46:44;11931:35;;:::i;:::-;60480:46;:53;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;;;:::i;:::-;;;11931:35:44;;:::i;:::-;61286:48;:56;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;;-1:-1:-1;395:1631:47;61455:26:44;395:1631:47;;61455:26:44;;395:1631:47;61421:60:44;;;;:::i;:::-;395:1631:47;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;2770:61:25;;3300:4;395:1631:47;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;3319:20:25;395:1631:47;;;966:10:24;395:1631:47;;3319:20:25;395:1631:47;2770:61:25;2805:15;;;395:1631:47;2805:15:25;395:1631:47;;2805:15:25;395:1631:47;;;;;;-1:-1:-1;;395:1631:47;;;;;;;:::i;:::-;;;3283:4:21;;;:::i;:::-;395:1631:47;11931:35:44;;:::i;:::-;44758:19;:27;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;45075:34:44;395:1631:47;-1:-1:-1;395:1631:47;45075:34:44;395:1631:47;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;11931:35:44;;:::i;:::-;395:1631:47;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;47601:43:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;47631:12:44;47601:43;;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;45808:90:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;45885:12:44;;395:1631:47;;;;;;-1:-1:-1;;;;;395:1631:47;45808:90:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;60266:46:44;11931:35;;:::i;:::-;60266:46;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;29711:41:44;395:1631:47;;29711:41:44;:::i;:::-;395:1631:47;-1:-1:-1;;;;;;;;;;;3556:68:36;395:1631:47;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;60050:46:44;11931:35;;:::i;:::-;60050:46;395:1631:47;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;24060:23:44;11931:35;;:::i;:::-;24060:23;395:1631:47;24087:12:44;24060:39;24087:12;;395:1631:47;24087:12:44;24060:78;395:1631:47;;;;;;24060:78:44;395:1631:47;24117:21:44;;:::i;:::-;24060:78;;395:1631:47;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;;;:::i;:::-;;;11931:35:44;;:::i;:::-;60718:48;:56;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;;;;-1:-1:-1;395:1631:47;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;44047:21:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;44047:21:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;45425:76:44;395:1631:47;;:::i;:::-;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;45488:12:44;;395:1631:47;;;-1:-1:-1;;;;;395:1631:47;45425:76:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;2971:9:25;2967:62;;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;3627:22:25;395:1631:47;;;966:10:24;395:1631:47;;3627:22:25;395:1631:47;2967:62:25;3003:15;;;395:1631:47;3003:15:25;395:1631:47;;3003:15:25;395:1631:47;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;29427:40:44;29454:12;29427:40;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;966:10:24;-1:-1:-1;;;;;395:1631:47;;6489:34:21;6485:102;;6597:37;395:1631:47;;;6597:37:21;:::i;6485:102::-;6546:30;;;395:1631:47;6546:30:21;395:1631:47;;6546:30:21;395:1631:47;;;;;;-1:-1:-1;;395:1631:47;;;;;;;1936:9:45;395:1631:47;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11931:35:44;;:::i;:::-;62361:27;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;62361:19:44;;395:1631:47;;;-1:-1:-1;395:1631:47;;;62564:23:44;62695:22;62564:23;;;;395:1631:47;62623:26:44;;395:1631:47;62695:22:44;;395:1631:47;;;;;;;;:::i;:::-;;;;;62418:314:44;;395:1631:47;;;;62418:314:44;;395:1631:47;;;62418:314:44;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;5398:25:21;395:1631:47;;;;:::i;:::-;5368:18:21;3283:4;5368:18;;;:::i;3283:4::-;5398:25;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;395:1631:47;;;;;;;:::i;:::-;63973:59:44;11931:35;;:::i;:::-;63907:22;63795:73;395:1631:47;;;;;;63816:19:44;;395:1631:47;;;;;;63795:73:44;;:::i;:::-;395:1631:47;;;;63907:22:44;395:1631:47;63878:26:44;;395:1631:47;63878:26:44;;395:1631:47;63973:59:44;:::i;:::-;395:1631:47;63939:31:44;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;;;;;41477:426:44;395:1631:47;3283:4:21;;;:::i;:::-;41477:426:44;:::i;:::-;395:1631:47;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;3283:4:21;;:::i;:::-;1181:103:33;;:::i;:::-;395:1631:47;38689:55:44;38731:12;395:1631:47;;38689:55:44;:::i;395:1631:47:-;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;21606:64:44;;;:146;;;;395:1631:47;21606:220:44;;;;395:1631:47;21606:292:44;;;;395:1631:47;21606:344:44;;;;395:1631:47;;;;;;;21606:344:44;-1:-1:-1;;;6687:49:45;;;-1:-1:-1;6687:89:45;;;;21606:344:44;;;;;6687:89:45;-1:-1:-1;;;1851:57:22;;;-1:-1:-1;1851:97:22;;;;6687:89:45;;;;;1851:97:22;-1:-1:-1;;;3599:47:21;;;-1:-1:-1;3599:87:21;;;;1851:97:22;;;;;3599:87:21;-1:-1:-1;;;1101:40:26;;-1:-1:-1;3599:87:21;;;21606:292:44;-1:-1:-1;;;21842:56:44;;;-1:-1:-1;21606:292:44;;:220;-1:-1:-1;;;21768:58:44;;;-1:-1:-1;21606:220:44;;:146;-1:-1:-1;;;21686:66:44;;;-1:-1:-1;21606:146:44;;395:1631:47;;;;-1:-1:-1;;;;;395:1631:47;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;395:1631:47;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;395:1631:47;;;;;-1:-1:-1;395:1631:47;41477:426:44;41703:22;11931:35;;:::i;:::-;41703:22;395:1631:47;;;;;;;;;;;;;;;;;41740:18:44;;;41736:35;;395:1631:47;;;41829:45:44;395:1631:47;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;41829:45:44;41892:4;41477:426;:::o;41736:35::-;41760:11;;;41767:4;41760:11;:::o;395:1631:47:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;395:1631:47;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4807:191:21;-1:-1:-1;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;4967:24:21;395:1631:47;-1:-1:-1;395:1631:47;4967:24:21;395:1631:47;4807:191:21;:::o;395:1631:47:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;395:1631:47;;-1:-1:-1;395:1631:47;;;-1:-1:-1;395:1631:47;:::o;:::-;;;;;-1:-1:-1;;;395:1631:47;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;;;;;:::o;4196:103:21:-;966:10:24;-1:-1:-1;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;;-1:-1:-1;4562:47:21;4196:103;966:10:24;-1:-1:-1;395:1631:47;;;;;;;;;;;;4516:23:21;4512:108;;4196:103::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;;-1:-1:-1;4562:47:21;4196:103;-1:-1:-1;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;966:10:24;395:1631:47;;;;;;;;;;4516:23:21;4512:108;;4196:103;:::o;4512:108::-;4562:47;;;-1:-1:-1;4562:47:21;966:10:24;4562:47:21;395:1631:47;;;;-1:-1:-1;4562:47:21;1290:377:33;-1:-1:-1;;;;;;;;;;;3327:69:36;1444:93:33;;1655:4;-1:-1:-1;;;;;;;;;;;3556:68:36;1290:377:33:o;1444:93::-;1496:30;;;-1:-1:-1;1496:30:33;;-1:-1:-1;1496:30:33;40297:1105:44;11931:35;;:::i;:::-;395:1631:47;;40554:42:44;;;;40550:59;;40624:21;;:::i;:::-;:43;40620:61;;40799:20;40706:17;;;40692:35;40706:20;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;40692:35:44;:::i;:::-;;40799:20;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;-1:-1:-1;395:1631:47;;;40779:19:44;;;395:1631:47;;;;;;;40941:33:44;395:1631:47;40941:33:44;;:::i;:::-;40918:56;;395:1631:47;;41187:33:44;;;;;:55;41308:65;41187:33;;;395:1631:47;41187:33:44;;:::i;:::-;:55;:::i;:::-;395:1631:47;;;;;;;;;;;;41308:65:44;41391:4;40297:1105;:::o;395:1631:47:-;;;;;;;;40779:19:44;395:1631:47;;;;;;;;40620:61:44;40669:12;;;395:1631:47;40669:12:44;:::o;40550:59::-;40598:11;;;;40605:4;40598:11;:::o;9575:252::-;395:1631:47;;9711:77:44;;;395:1631:47;;;9711:77:44;;;;395:1631:47;9711:77:44;;:::i;:::-;395:1631:47;;9701:88:44;;-1:-1:-1;;9701:126:44;;9575:252::o;4035:348:22:-;4241:31;;;;:::i;:::-;4282:71;;;;4362:14;;4035:348;:::o;4282:71::-;-1:-1:-1;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;11511:50:41;;-1:-1:-1;;;;;395:1631:47;;11511:50:41;:::i;:::-;;4035:348:22;:::o;4486:353::-;4693:32;;;;:::i;:::-;4735:74;;;;4818:14;;4486:353;:::o;4735:74::-;-1:-1:-1;395:1631:47;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;11832:53:41;;-1:-1:-1;;;;;395:1631:47;;11832:53:41;:::i;395:1631:47:-;;;;;;;;;;;;;;;;:::o;30668:2269:44:-;30744:7;;:::i;:::-;11931:35;;:::i;:::-;30895:23;;;395:1631:47;;30895:40:44;;;;:73;;;30668:2269;395:1631:47;;;31139:39:44;;;;:::i;:::-;31192:11;;;31188:37;;395:1631:47;;;31618:27:44;;;;;:::i;:::-;31683:19;;;;;395:1631:47;31733:75:44;:34;;;:75;:34;;;31770;;;;:::i;:::-;31733:75;;31823:13;31819:937;;31733:75;395:1631:47;;;;;11931:35:44;;:::i;:::-;33824:137;31088:12;33824:29;;31088:12;;395:1631:47;33824:137:44;;34065:30;;;34061:276;;33824:137;34347:19;;31683;34347;;;395:1631:47;30668:2269:44;:::o;34061:276::-;34255:22;;;;:::i;:::-;30895:23;395:1631:47;;;;;;;34116:210:44;395:1631:47;31683:19:44;395:1631:47;;;;;34116:210:44;395:1631:47;;;;;;;;;;;34116:210:44;34061:276;;;;33824:137;33885:34;;;;;;33922;;;;:::i;:::-;33824:137;;;33885:75;395:1631:47;33885:75:44;;31819:937;32384:43;:80;32236:17;:20;:17;;;:20;:::i;:::-;395:1631:47;;31683:19:44;395:1631:47;;;;;-1:-1:-1;;;;;395:1631:47;-1:-1:-1;395:1631:47;;;32311:19:44;;;395:1631:47;;;;;32405:22:44;;;;395:1631:47;;32384:43:44;:::i;:::-;395:1631:47;;32384:80:44;;:::i;:::-;32504:22;;;;:::i;:::-;32545:26;;;;;;32632:13;;;;:::i;:::-;31819:937;;;;;;32541:204;32731:13;;;;;;:::i;:::-;32541:204;;31733:75;395:1631:47;31733:75:44;;;31188:37;31205:20;;;;:::o;395:1631:47:-;;;;;;;;;;;31088:12:44;395:1631:47;;;;;30895:73:44;30956:12;;30939:29;;;30895:73;;51219:1370;;;51426:72;395:1631:47;51426:72:44;;;:::i;:::-;51425:73;51421:90;;51526:21;;:::i;:::-;:43;51522:61;;51594:21;;;:::i;:::-;;51625:64;51639:49;:46;11931:35;;:::i;:::-;51639:46;:49;:::i;51625:64::-;;11931:35;;:::i;:::-;54960:19;;;:27;395:1631:47;;;;;;;;;;;;;;;55058:17:44;:20;51639:46;55058:17;;:20;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;55566:121:44;;395:1631:47;;55566:80:44;;;:::i;:::-;55661:26;;395:1631:47;;;55566:121:44;;:::i;:::-;55718:55;;;395:1631:47;;55979:36:44;56068:22;55979:36;;;56068:51;55979:36;;:::i;:::-;:54;395:1631:47;56068:22:44;395:1631:47;;;;;56068:51:44;;:::i;:::-;:69;395:1631:47;11931:35:44;;:::i;:::-;-1:-1:-1;;;;;395:1631:47;;-1:-1:-1;395:1631:47;;;54960:19:44;56866;;395:1631:47;;;;;;57901:25:44;;;;;:49;;51219:1370;57897:489;;;395:1631:47;-1:-1:-1;55661:26:44;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;58029:36:44;:71;;;57897:489;58025:107;;57897:489;395:1631:47;;;;;58215:26:44;395:1631:47;57897:489:44;395:1631:47;;;;;-1:-1:-1;395:1631:47;;;;-1:-1:-1;;;;;395:1631:47;;52491:70:44;55661:26;51219:1370;:::o;58025:107::-;51639:46;58102:30;:17;;:30;:::i;:::-;58025:107;;;;58029:71;58069:26;;;;395:1631:47;58069:31:44;58029:71;;57897:489;11931:35;;;;;:::i;:::-;58843:13;-1:-1:-1;;;;;395:1631:47;;;51639:46:44;58862:17;;;55661:26;58888:3;395:1631:47;;58858:28:44;;;;;;58911:20;;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;58911:30:44;58907:255;;58888:3;55661:26;395:1631:47;58843:13:44;;58907:255;395:1631:47;;;;;;;;;;;;;;;;58961:20:44;58984:47;58961:70;58984:47;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;58961:20:44;;:::i;:70::-;395:1631:47;;;;;;;-1:-1:-1;;;;;;;;;;;52491:70:44;395:1631:47;;54960:19:44;;-1:-1:-1;;395:1631:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;395:1631:47;59097:19:44;395:1631:47;;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;57897:489:44;;395:1631:47;;;;-1:-1:-1;395:1631:47;;54960:19:44;395:1631:47;;-1:-1:-1;395:1631:47;58858:28:44;;;;;-1:-1:-1;;;;;;;;;;;58858:28:44;;;395:1631:47;58858:28:44;;57897:489;;57901:49;;-1:-1:-1;57901:49:44;;395:1631:47;;;;;-1:-1:-1;395:1631:47;54960:19:44;395:1631:47;;;;-1:-1:-1;395:1631:47;51522:61:44;51571:12;;395:1631:47;51571:12:44;:::o;51219:1370::-;;;;;51426:72;;;;;:::i;:::-;51425:73;51421:90;;51526:21;;:::i;:::-;:43;51522:61;;51594:21;;;:::i;:::-;;51625:64;51639:49;:46;11931:35;;:::i;51625:64::-;;11931:35;;:::i;:::-;54960:19;;;:27;395:1631:47;;;;;;;-1:-1:-1;395:1631:47;;;;;-1:-1:-1;395:1631:47;55058:17:44;:20;51639:46;55058:17;;:20;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;;55566:121:44;;395:1631:47;;55566:80:44;;;:::i;:121::-;55718:38;;;;;:::i;:::-;:55;55867:38;;;;:::i;:::-;395:1631:47;;;55979:36:44;56068:22;:69;55979:36;;;:54;:36;;;56068:51;55979:36;;:::i;:54::-;395:1631:47;;56068:22:44;395:1631:47;;;;;56068:51:44;;:::i;:::-;:69;:::i;:::-;395:1631:47;;11931:35:44;;:::i;:::-;-1:-1:-1;;;;;395:1631:47;;-1:-1:-1;395:1631:47;;;54960:19:44;56866;;395:1631:47;;;;;;57901:25:44;;;;;:49;;51219:1370;57897:489;;;395:1631:47;;55661:26:44;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;58029:36:44;:71;;;57897:489;58025:107;;57897:489;395:1631:47;;;;;58215:26:44;395:1631:47;57897:489:44;395:1631:47;;;;;;;;;-1:-1:-1;;;;;395:1631:47;;52491:70:44;55661:26;51219:1370;:::o;58025:107::-;51639:46;58102:30;:17;;:30;:::i;:::-;58025:107;;;;58029:71;58069:26;;;;395:1631:47;58069:31:44;58029:71;;57897:489;11931:35;;;;;:::i;:::-;58843:13;-1:-1:-1;;;;;395:1631:47;;;51639:46:44;58862:17;;;55661:26;58888:3;395:1631:47;;58858:28:44;;;;;;58911:20;;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;58911:30:44;58907:255;;58888:3;55661:26;395:1631:47;58843:13:44;;58907:255;395:1631:47;;;;;;;;;;;;;;;;;58961:20:44;58984:47;58961:70;58984:47;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;58961:20:44;;:::i;:70::-;395:1631:47;;;;;;;-1:-1:-1;;;;;;;;;;;52491:70:44;395:1631:47;;54960:19:44;;-1:-1:-1;;395:1631:47;;;;;;;:::i;:::-;;-1:-1:-1;395:1631:47;59097:19:44;395:1631:47;;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;57897:489:44;;58858:28;;;;;;-1:-1:-1;;;;;;;;;;;58858:28:44;;;395:1631:47;58858:28:44;;57897:489;;57901:49;57930:20;;;;57901:49;;395:1631:47;;;;;;54960:19:44;395:1631:47;;;;;;42760:909:44;-1:-1:-1;;;;;395:1631:47;42910:20:44;;42906:37;;43066:19;11931:35;;:::i;:::-;43066:19;395:1631:47;;;;;43269:34:44;395:1631:47;;;43269:34:44;395:1631:47;;43253:12:44;:50;;43249:67;;43253:12;395:1631:47;;43585:56:44;;;;;395:1631:47;;;43066:19:44;395:1631:47;;;;;;;;;43585:56:44;;;;;;;;;;42760:909;43651:11;43658:4;42760:909;:::o;43585:56::-;395:1631:47;43585:56:44;;;:::i;:::-;395:1631:47;43585:56:44;;;395:1631:47;;;;;;;;;43249:67:44;43305:11;;43312:4;43305:11;:::o;27633:344::-;11931:35;;:::i;:::-;27700:64;;:::i;:::-;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;27811:44:44;;27877:19;;395:1631:47;27873:23:44;:97;;27899:40;27926:12;27899:40;:::i;:::-;27633:344;:::o;27873:97::-;27942:28;;:::i;27811:44::-;27832:23;;395:1631:47;27825:30:44;:::o;48797:1895::-;11931:35;;:::i;:::-;49003:17;;;;:20;;;;:::i;:::-;395:1631:47;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;49037:24:44;;;49033:41;;395:1631:47;;49524:1:44;49527:28;;;;;;49691:21;;;;:::i;:::-;:43;49687:61;;50027:19;50248:33;49829:25;;;;:::i;:::-;;49864;;;:::i;:::-;;50027:19;:31;395:1631:47;-1:-1:-1;395:1631:47;;;;50248:20:44;50027:55;395:1631:47;-1:-1:-1;395:1631:47;50027:55:44;395:1631:47;50248:20:44;;:::i;:33::-;-1:-1:-1;;;;;395:1631:47;;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;;;;;;;;;49507:170:44;50373:31;;395:1631:47;;;;;;;-1:-1:-1;395:1631:47;;;;-1:-1:-1;395:1631:47;;;;;;;;;;;;;;;-1:-1:-1;395:1631:47;;;50027:55:44;395:1631:47;-1:-1:-1;395:1631:47;50519:55:44;395:1631:47;50620:44:44;395:1631:47;50620:44:44;;49524:1;48797:1895;:::o;395:1631:47:-;50027:55:44;395:1631:47;;;;;;49524:1:44;395:1631:47;;;49524:1:44;395:1631:47;;;;;;;;;;;;49687:61:44;49736:12;;;;;395:1631:47;49736:12:44;:::o;49557:3::-;49584:20;;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;49584:34:44;395:1631:47;;49524:1:44;395:1631:47;49512:13:44;;395:1631:47;;;;;;;;;;;;49033:41:44;49063:11;;;;;;49070:4;49063:11;:::o;34869:1330::-;;;;;;;11931:35;;:::i;:::-;35143:23;;;395:1631:47;;35143:23:44;395:1631:47;;;;;;;35143:23:44;35239:13;;35392:19;35258:17;;;35392:19;;35234:475;35284:3;395:1631:47;;35254:28:44;;;;;35320:20;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;-1:-1:-1;395:1631:47;;;;;;;;;;;;;35392:27:44;395:1631:47;;;35434:265:44;;35284:3;;;35143:23;35284:3;;395:1631:47;35239:13:44;;35434:265;35510:40;;;;:::i;:::-;35568:11;-1:-1:-1;;;;;395:1631:47;;;35568:32:44;;;;;395:1631:47;;-1:-1:-1;;;35568:32:44;;-1:-1:-1;;;;;395:1631:47;;35392:19:44;35568:32;;395:1631:47;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;-1:-1:-1;;35568:32:44;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;35568:32:44;;35143:23;35568:32;;;;;35434:265;395:1631:47;;;;;;35623:61:44;35434:265;;;;35568:32;-1:-1:-1;35568:32:44;;;:::i;:::-;;;;35254:28;;;;;;;;;35820:26;35254:28;;35820:26;:::i;:::-;35860:23;;35856:337;;35234:475;34869:1330;;;;:::o;35856:337::-;35924:20;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;35958:225:44;;35856:337;35958:225;36010:11;-1:-1:-1;;;;;395:1631:47;;36010:53:44;;;;;395:1631:47;;-1:-1:-1;;;36010:53:44;;-1:-1:-1;;;;;395:1631:47;;35392:19:44;36010:53;;395:1631:47;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;-1:-1:-1;;36010:53:44;;;;;;;-1:-1:-1;;;;;;;;;;;36010:53:44;395:1631:47;36010:53:44;;;35958:225;395:1631:47;;;;;;36086:82:44;35958:225;;;;35856:337;;36010:53;-1:-1:-1;36010:53:44;;;:::i;:::-;;;;36704:1751;;;;11931:35;;:::i;:::-;37148:18;;;;:36;;;;36704:1751;37144:49;;37223:23;;;395:1631:47;;37223:23:44;395:1631:47;;;;;;;37539:19:44;;;;37386:13;37405:17;;37223:23;37431:3;395:1631:47;;37401:28:44;;;;;37467:20;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;-1:-1:-1;395:1631:47;;;;;;;;;;;;;37539:27:44;395:1631:47;;;37581:858:44;;37431:3;;;37223:23;37431:3;;395:1631:47;37386:13:44;;37581:858;38230:43;;;;:::i;:::-;395:1631:47;;;38308:11:44;-1:-1:-1;;;;;395:1631:47;;;;;;38308:32:44;;;;;395:1631:47;;-1:-1:-1;;;38308:32:44;;-1:-1:-1;;;;;395:1631:47;;37539:19:44;38308:32;;395:1631:47;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;-1:-1:-1;;38308:32:44;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;38308:32:44;;37223:23;38308:32;;;;;37581:858;395:1631:47;;;;;;38363:61:44;37581:858;;;;38308:32;37165:1;38308:32;;;:::i;:::-;;;;395:1631:47;;;;37165:1:44;395:1631:47;;37539:19:44;395:1631:47;;37165:1:44;395:1631:47;37401:28:44;;;;;;;;;;36704:1751::o;37144:49::-;37186:7;;;;;:::o;37148:36::-;37170:14;;;37148:36;;7318:387:21;-1:-1:-1;;;;;395:1631:47;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;-1:-1:-1;;395:1631:47;;;;;966:10:24;;395:1631:47;-1:-1:-1;;;;;;;;;;;2399:26:45;7580:40:21;;395:1631:47;7580:40:21;7557:4;7634:11;:::o;7480:219::-;7676:12;395:1631:47;7676:12:21;:::o;7318:387::-;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;966:10:24;;395:1631:47;;7580:40:21;;395:1631:47;7580:40:21;7557:4;7634:11;:::o;7942:388::-;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;;;;;;;;;;;;-1:-1:-1;;395:1631:47;;;966:10:24;;395:1631:47;;8205:40:21;;395:1631:47;8205:40:21;395:1631:47;8259:11:21;:::o;24659:2295:44:-;11931:35;;:::i;:::-;24812:22;;;395:1631:47;;;24865:12:44;24848:29;;24844:42;;24913:28;24865:12;;24913:28;:::i;:::-;395:1631:47;24987:1:44;395:1631:47;;;;;;;25371:19:44;;;395:1631:47;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;;25404:28:44;;;;24659:2295;25400:357;;24659:2295;24865:12;;;395:1631:47;;25882:22:44;;;395:1631:47;25878:26:44;25874:1074;;24659:2295;;;;:::o;25874:1074::-;395:1631:47;25924:22:44;;;395:1631:47;;25371:19:44;395:1631:47;;;;;24812:22:44;25924:56;;24812:22;;-1:-1:-1;;26085:17:44;;;395:1631:47;;;26235:19:44;;;;;26066:13;-1:-1:-1;26081:28:44;;;;;;25920:945;;;;;;;25874:1074;;;;;;26111:3;26155:20;;24987:1;26155:20;;;:::i;:::-;395:1631:47;;;;;;;;25371:19:44;395:1631:47;;;;;;;;;;-1:-1:-1;395:1631:47;;;;;;;-1:-1:-1;395:1631:47;26293:26:44;395:1631:47;26289:30:44;;26285:234;;26111:3;;;;;395:1631:47;26066:13:44;;26285:234;26364:35;;;:::i;:::-;395:1631:47;;;;;;26430:66:44;395:1631:47;24865:12:44;26430:66;;26285:234;;;;;;25920:945;395:1631:47;;;;-1:-1:-1;395:1631:47;24987:1:44;26561:56;26557:308;;25920:945;;;;;;26557:308;26724:31;;;:::i;:::-;395:1631:47;;;;;;26778:72:44;395:1631:47;24865:12:44;26778:72;;26557:308;;;;;25400:357;25448:54;25471:31;:22;;;;395:1631:47;25471:31:44;:::i;:::-;25448:54;;:::i;:::-;395:1631:47;;;25584:35:44;;;25580:167;25400:357;25580:167;395:1631:47;;;;;;;;;24865:12:44;25644:88;395:1631:47;24865:12:44;25644:88;;25580:167;;25400:357;;25404:28;25416:16;;;;25404:28;;24844:42;24879:7;;;:::o;53138:932::-;-1:-1:-1;;;;;395:1631:47;;53138:932:44;53320:20;;395:1631:47;;11931:35:44;;:::i;:::-;53474:17;;;53532:20;53474;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;53464:30:44;;;53532:20;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;;;53603:27:44;:19;:27;395:1631:47;-1:-1:-1;395:1631:47;53603:19:44;395:1631:47;;;-1:-1:-1;395:1631:47;;;;;53645:55:44;:104;;;;53138:932;53641:134;;;;53810:25;;;;:49;;;53138:932;53806:235;;;54052:11;54059:4;53138:932;:::o;53806:235::-;395:1631:47;;-1:-1:-1;;;53898:68:44;;-1:-1:-1;;;53603:19:44;53898:68;;395:1631:47;;;53898:68:44;395:1631:47;53898:68:44;;;;;;;;395:1631:47;53898:68:44;;;53806:235;395:1631:47;53806:235:44;395:1631:47;;;;;;53603:19:44;395:1631:47;53898:68:44;395:1631:47;;53898:68:44;;;395:1631:47;53898:68:44;;395:1631:47;53898:68:44;;;;;;395:1631:47;53898:68:44;;;:::i;:::-;;;395:1631:47;;;;;;;;;;;;53898:68:44;;;;;;-1:-1:-1;53898:68:44;;53810:49;53839:20;;;;53810:49;;;53645:104;53704:26;;395:1631:47;53704:45:44;;-1:-1:-1;53645:104:44;;;;395:1631:47;;;;;;;;;;;;;;;;;;;;28289:936:44;11931:35;;:::i;:::-;28470:23;;;;395:1631:47;;;28455:12:44;:38;:12;;:38;:::i;:::-;28507:11;;;28503:47;;28470:23;395:1631:47;;;;;;;;28624:13:44;;28826:19;28643:17;;;28826:19;;28619:522;28669:3;395:1631:47;;28639:28:44;;;;;28705:20;;;;:::i;:::-;395:1631:47;;;;;;;;-1:-1:-1;;;;;395:1631:47;;28743:20:44;;28739:34;;395:1631:47;;;;;;;-1:-1:-1;395:1631:47;;;;;;-1:-1:-1;395:1631:47;;28871:35:44;28867:264;;28669:3;;;28470:23;28669:3;;28624:13;395:1631:47;28624:13:44;;28867:264;28943:40;;;;:::i;:::-;29001:11;-1:-1:-1;;;;;395:1631:47;;29001:32:44;;;;;395:1631:47;;-1:-1:-1;;;29001:32:44;;-1:-1:-1;;;;;395:1631:47;;28826:19:44;29001:32;;395:1631:47;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;-1:-1:-1;;29001:32:44;;;;;;;28470:23;29001:32;;;;;28867:264;395:1631:47;;;;;;-1:-1:-1;;;;;;;;;;;395:1631:47;28455:12:44;29056:60;;28867:264;;;;29001:32;395:1631:47;29001:32:44;;;:::i;:::-;;;;28739:34;28470:23;28765:8;;;;28639:28;;;;;;;28455:12;395:1631:47;;28455:12:44;28289:936;:::o;28503:47::-;-1:-1:-1;28520:30:44;;-1:-1:-1;;28520:30:44:o;2497:406:41:-;5197:14;;;395:1631:47;;;;;;;;;;;5197:26:41;2576:321;395:1631:47;;;;;-1:-1:-1;;;395:1631:47;;;;;;;;5197:14:41;395:1631:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5197:14:41;2832:11;:::o;3071:1368::-;;3266:14;;;395:1631:47;;;;;;;;;;;3302:13:41;;;3298:1135;3302:13;;;-1:-1:-1;;395:1631:47;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;;;3777:23:41;;;3773:378;;3298:1135;395:1631:47;;;;;;;;;-1:-1:-1;;395:1631:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3266:14:41;4368:11;:::o;3773:378::-;395:1631:47;3840:22:41;3961:23;3840:22;;;:::i;:::-;395:1631:47;;;;;;3961:23:41;;;;;:::i;395:1631:47:-;;;;;;;;;;;;3773:378:41;;;;;3298:1135;4410:12;;;;395:1631:47;4410:12:41;:::o;7082:141:23:-;395:1631:47;-1:-1:-1;;;;;;;;;;;395:1631:47;;;;7148:18:23;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:23;;-1:-1:-1;7189:17:23"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","GOVERNOR_ROLE()":"ccc57490","MILLION()":"32bc934c","OPERATOR_ROLE()":"f5b541a6","PAUSE_ROLE()":"389ed267","distributeIssuance()":"49bdfcb0","distributePendingIssuance()":"3af5b073","distributePendingIssuance(uint256)":"52c0e18c","exposedDistributePendingProportionally(uint256,uint256,uint256)":"e038978e","exposedDistributePendingWithFullRate(uint256,uint256,uint256,uint256)":"d48beb1b","forceTargetNoChangeNotificationBlock(address,uint256)":"7c92330b","getDistributionState()":"ee56977e","getIssuancePerBlock()":"79d5fc54","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","getRoleMembers(bytes32)":"a3246ad3","getSelfMintingEventMode()":"93c911a8","getTargetAllocation(address)":"84c48422","getTargetAt(uint256)":"87ee921c","getTargetCount()":"4a1293b7","getTargetData(address)":"48c3c62e","getTargetIssuancePerBlock(address)":"3067cb4c","getTargets()":"63fe3b56","getTotalAllocation()":"15d3b5d8","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","notifyTarget(address)":"4887693c","pause()":"8456cb59","paused()":"5c975abb","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultTarget(address)":"697cf322","setDefaultTarget(address,uint256)":"d012a15b","setIssuancePerBlock(uint256)":"1156bdc1","setIssuancePerBlock(uint256,uint256)":"c627b7a4","setSelfMintingEventMode(uint8)":"13a7855d","setTargetAllocation(address,uint256)":"443990fa","setTargetAllocation(address,uint256,uint256)":"647b3682","setTargetAllocation(address,uint256,uint256,uint256)":"c2cb3544","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_graphToken\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultTarget\",\"type\":\"address\"}],\"name\":\"CannotSetAllocationForDefaultTarget\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"CannotSetDefaultToAllocatedTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GovernorCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GraphTokenCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllocationAvailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"oldRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unallocated\",\"type\":\"uint256\"}],\"name\":\"InsufficientUnallocatedForRateDecrease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TargetAddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"TargetDoesNotSupportIIssuanceTarget\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxBlock\",\"type\":\"uint256\"}],\"name\":\"ToBlockOutOfRange\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"DefaultTargetUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceDistributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldIssuancePerBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"IssuancePerBlockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceSelfMintAllowance\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"IssuanceSelfMintAllowanceAggregate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"oldMode\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"newMode\",\"type\":\"uint8\"}],\"name\":\"SelfMintingEventModeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetAfter\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"SelfMintingOffsetAccumulated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetBefore\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"offsetAfter\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalForPeriod\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"}],\"name\":\"SelfMintingOffsetReconciled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newAllocatorMintingRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSelfMintingRate\",\"type\":\"uint256\"}],\"name\":\"TargetAllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOVERNOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MILLION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OPERATOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSE_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributeIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toBlockNumber\",\"type\":\"uint256\"}],\"name\":\"distributePendingIssuance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlockNumber\",\"type\":\"uint256\"}],\"name\":\"exposedDistributePendingProportionally\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blocks\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatedTotal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlockNumber\",\"type\":\"uint256\"}],\"name\":\"exposedDistributePendingWithFullRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"forceTargetNoChangeNotificationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDistributionState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastDistributionBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastSelfMintingBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingOffset\",\"type\":\"uint256\"}],\"internalType\":\"struct DistributionState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIssuancePerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTargetAt\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastChangeNotifiedBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct AllocationTarget\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"getTargetIssuancePerBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorIssuanceBlockAppliedTo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfIssuanceBlockAppliedTo\",\"type\":\"uint256\"}],\"internalType\":\"struct TargetIssuancePerBlock\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTargets\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"totalAllocationRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation\",\"name\":\"allocation\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governor\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"notifyTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setDefaultTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newIssuancePerBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum SelfMintingEventMode\",\"name\":\"newMode\",\"type\":\"uint8\"}],\"name\":\"setSelfMintingEventMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IIssuanceTarget\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocatorMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selfMintingRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minDistributedBlock\",\"type\":\"uint256\"}],\"name\":\"setTargetAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"This contract allows direct testing of internal distribution functions to achieve 100% coverage\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CannotSetAllocationForDefaultTarget(address)\":[{\"params\":{\"defaultTarget\":\"The address of the default target\"}}],\"CannotSetDefaultToAllocatedTarget(address)\":[{\"params\":{\"target\":\"The target address that already has an allocation\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InsufficientAllocationAvailable(uint256,uint256)\":[{\"params\":{\"available\":\"The available budget for this target\",\"requested\":\"The total requested allocation (allocator + self minting)\"}}],\"InsufficientUnallocatedForRateDecrease(uint256,uint256,uint256)\":[{\"params\":{\"newRate\":\"The proposed new issuance rate\",\"oldRate\":\"The current issuance rate\",\"unallocated\":\"The unallocated budget available to absorb the decrease\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"TargetDoesNotSupportIIssuanceTarget(address)\":[{\"params\":{\"target\":\"The target address that doesn't support the interface\"}}],\"ToBlockOutOfRange(uint256,uint256,uint256)\":[{\"params\":{\"maxBlock\":\"The maximum valid block number (current block)\",\"minBlock\":\"The minimum valid block number (lastDistributionBlock)\",\"toBlock\":\"The invalid block number provided\"}}]},\"events\":{\"DefaultTargetUpdated(address,address)\":{\"params\":{\"newAddress\":\"The new default target address\",\"oldAddress\":\"The previous default target address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"IssuanceDistributed(address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens distributed\",\"fromBlock\":\"First block included in this distribution (inclusive)\",\"target\":\"The address of the target that received issuance\",\"toBlock\":\"Last block included in this distribution (inclusive). Range is [fromBlock, toBlock]\"}},\"IssuancePerBlockUpdated(uint256,uint256)\":{\"params\":{\"newIssuancePerBlock\":\"The new issuance per block amount\",\"oldIssuancePerBlock\":\"The previous issuance per block amount\"}},\"IssuanceSelfMintAllowance(address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens available for self-minting\",\"fromBlock\":\"First block included in this allowance period (inclusive)\",\"target\":\"The address of the target with self-minting allocation\",\"toBlock\":\"Last block included in this allowance period (inclusive). Range is [fromBlock, toBlock]\"}},\"IssuanceSelfMintAllowanceAggregate(uint256,uint256,uint256)\":{\"details\":\"This event is emitted when selfMintingEventMode is Aggregate, providing a single event instead of per-target events to reduce gas costs\",\"params\":{\"fromBlock\":\"First block included in this allowance period (inclusive)\",\"toBlock\":\"Last block included in this allowance period (inclusive)\",\"totalAmount\":\"The total amount of tokens available for self-minting across all targets\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SelfMintingEventModeUpdated(uint8,uint8)\":{\"params\":{\"newMode\":\"The new event emission mode\",\"oldMode\":\"The previous event emission mode\"}},\"SelfMintingOffsetAccumulated(uint256,uint256,uint256,uint256)\":{\"details\":\"This event provides visibility into offset growth during pause periods or while catching up after unpause. Together with SelfMintingOffsetReconciled, provides complete accounting of all offset changes.\",\"params\":{\"fromBlock\":\"First block in the accumulation period (inclusive)\",\"offsetAfter\":\"The self-minting offset after accumulation\",\"offsetBefore\":\"The self-minting offset before accumulation\",\"toBlock\":\"Last block in the accumulation period (inclusive)\"}},\"SelfMintingOffsetReconciled(uint256,uint256,uint256,uint256,uint256)\":{\"details\":\"This event provides visibility into the accounting reconciliation between self-minting and allocator-minting budgets during pending distribution. When offsetAfter is 0, the contract has fully caught up with distribution. When offsetAfter > 0, there remains accumulated offset that will be applied to future distributions.\",\"params\":{\"fromBlock\":\"First block in the distribution period (inclusive)\",\"offsetAfter\":\"The self-minting offset after reconciliation (0 when caught up to current block)\",\"offsetBefore\":\"The self-minting offset before reconciliation\",\"toBlock\":\"Last block in the distribution period (inclusive)\",\"totalForPeriod\":\"The total issuance budget for the distributed period\"}},\"TargetAllocationUpdated(address,uint256,uint256)\":{\"params\":{\"newAllocatorMintingRate\":\"The new allocator-minting rate (tokens per block) for the target\",\"newSelfMintingRate\":\"The new self-minting rate (tokens per block) for the target\",\"target\":\"The address of the target whose allocation was updated\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\",\"params\":{\"_graphToken\":\"Address of the Graph Token contract\"}},\"distributeIssuance()\":{\"details\":\"Implementation details: - For allocator-minting targets, tokens are minted and transferred directly to targets based on their allocation rate - For self-minting targets (like the legacy RewardsManager), it does not mint tokens directly. Instead, these contracts are expected to handle minting themselves - The self-minting allocation is intended only for backwards compatibility with existing contracts and should not be used for new targets. New targets should use allocator-minting allocation to ensure robust control of token issuance by the IssuanceAllocatorPause behavior: - When paused: Self-minting allowances tracked via events/accumulation, but no allocator-minting tokens distributed.   Returns lastDistributionBlock (frozen at pause point). lastSelfMintingBlock advances to current block. - When unpaused: Normal distribution if no accumulated self-minting, otherwise retroactive distribution   using current rates for entire undistributed period, with accumulated self-minting reducing allocator budget. - Unless paused, always advances lastDistributionBlock to block.number, even if no issuance to distribute.Reentrancy: This function intentionally does NOT have a reentrancy guard to allow targets to legitimately call it during notifications (e.g., to claim pending issuance before their allocation changes). This is safe because the function has built-in block-tracking protection that prevents double-distribution within the same block, makes no external calls that could expose inconsistent state, and does not modify allocations.\",\"returns\":{\"_0\":\"Block number that issuance has been distributed to. That will normally be the current block number, unless the contract is paused.\"}},\"distributePendingIssuance()\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to current block). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"returns\":{\"_0\":\"Block number that issuance was distributed up to\"}},\"distributePendingIssuance(uint256)\":{\"details\":\"Distributes accumulated allocator-minting issuance using current rates (retroactively applied to the period from lastDistributionBlock to toBlockNumber). Prioritizes non-default targets getting full rates; default gets remainder.Finalizes self-minting accumulation for the period being distributed.\",\"params\":{\"toBlockNumber\":\"Block number to distribute up to (must be <= block.number and >= lastDistributionBlock)\"},\"returns\":{\"_0\":\"Block number that issuance was distributed up to\"}},\"exposedDistributePendingProportionally(uint256,uint256,uint256)\":{\"details\":\"Allows testing of defensive checks and edge cases\",\"params\":{\"allocatedRate\":\"Total rate allocated to non-default targets\",\"available\":\"Total available allocator-minting budget for the period\",\"toBlockNumber\":\"Block number distributing to\"}},\"exposedDistributePendingWithFullRate(uint256,uint256,uint256,uint256)\":{\"details\":\"Allows testing of edge cases in full rate distribution\",\"params\":{\"allocatedTotal\":\"Total amount allocated to non-default targets at full rate\",\"available\":\"Total available allocator-minting budget for the period\",\"blocks\":\"Number of blocks in the distribution period\",\"toBlockNumber\":\"Block number distributing to\"}},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"details\":\"Implementation details: - This can be used to enable notification to be sent again (by setting to a past block) or to prevent notification until a future block (by setting to current or future block) - Returns the block number that was set, always equal to blockNumber in current implementation\",\"params\":{\"blockNumber\":\"Block number to set as the lastChangeNotifiedBlock\",\"target\":\"Address of the target to update\"},\"returns\":{\"_0\":\"The block number that was set\"}},\"getDistributionState()\":{\"returns\":{\"_0\":\"DistributionState struct containing block tracking and accumulation info\"}},\"getIssuancePerBlock()\":{\"returns\":{\"_0\":\"The current issuance per block\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"getRoleMembers(bytes32)\":{\"details\":\"Return all accounts that have `role` WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getSelfMintingEventMode()\":{\"returns\":{\"_0\":\"The current emission mode\"}},\"getTargetAllocation(address)\":{\"details\":\"Returns assigned allocation regardless of whether target is address(0) or the default.For address(0), no minting occurs but the allocation represents the unallocated portion.For effective allocations excluding unmintable portion, use getTotalAllocation().\",\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"Allocation struct containing total, allocator-minting, and self-minting allocations\"}},\"getTargetAt(uint256)\":{\"params\":{\"index\":\"The index of the target address to retrieve\"},\"returns\":{\"_0\":\"The target address at the specified index\"}},\"getTargetCount()\":{\"returns\":{\"_0\":\"The total number of allocated targets\"}},\"getTargetData(address)\":{\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"AllocationTarget struct containing target information including lastChangeNotifiedBlock\"}},\"getTargetIssuancePerBlock(address)\":{\"details\":\"Returns assigned issuance rates regardless of whether target is address(0) or the default.For address(0), no minting occurs but rates reflect what would be issued if mintable.selfIssuanceBlockAppliedTo reflects the last block for which self-minting allowances have been calculated and emitted (lastSelfMintingBlock). This advances continuously, unaffected by pause state.\",\"params\":{\"target\":\"Address of the target\"},\"returns\":{\"_0\":\"TargetIssuancePerBlock struct containing allocatorIssuanceBlockAppliedTo, selfIssuanceBlockAppliedTo, allocatorIssuanceRate, and selfIssuanceRate\"}},\"getTargets()\":{\"returns\":{\"_0\":\"Array of target addresses\"}},\"getTotalAllocation()\":{\"details\":\"For reporting purposes, if the default target is address(0), its allocationis treated as \\\"unallocated\\\" since address(0) cannot receive minting.When default is address(0): returns actual allocated amounts (may be less than issuancePerBlock)When default is a real address: returns issuancePerBlockNote: Internally, the contract always maintains 100% allocation invariant, even when default is address(0)\",\"returns\":{\"allocation\":\"Allocation struct containing total, allocator-minting, and self-minting allocations across all targets\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"details\":\"Initializes with a default target at index 0 set to address(0)Default target will receive all unallocated issuance (initially 0 until rate is set)lastDistributionBlock is set to block.number as a safety guard against pausing before configuration. lastSelfMintingBlock defaults to 0. issuancePerBlock is 0. Once setIssuancePerBlock() is called, it triggers _distributeIssuance() which updates lastDistributionBlock to current block, establishing the starting point for issuance tracking.selfMintingEventMode is initialized to PerTarget\",\"params\":{\"_governor\":\"Address that will have the GOVERNOR_ROLE\"}},\"notifyTarget(address)\":{\"details\":\"Implementation details: - The target will be notified at most once per block to prevent reentrancy looping - Will revert if target notification reverts\",\"params\":{\"target\":\"Address of the target to notify\"},\"returns\":{\"_0\":\"True if notification was sent or already sent this block, false otherwise\"}},\"pause()\":{\"details\":\"Pauses contract operations. Only functions using whenNotPaused modifier will be affected.\"},\"paused()\":{\"returns\":{\"_0\":\"True if the contract is paused, false otherwise\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDefaultTarget(address)\":{\"params\":{\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"_0\":\"True if applied\"}},\"setDefaultTarget(address,uint256)\":{\"details\":\"Governance should explicitly call distributePendingIssuance(blockNumber) first if paused and distribution is not up to minDistributedBlock block. then call this function with the same or lower blockNumber.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newAddress\":\"The new default target address (can be address(0))\"},\"returns\":{\"_0\":\"True if applied, false if distribution has not reached minDistributedBlock and therefore the change was not applied\"}},\"setIssuancePerBlock(uint256)\":{\"details\":\"Requires distribution to have reached block.number\",\"params\":{\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case)\"}},\"setIssuancePerBlock(uint256,uint256)\":{\"details\":\"Implementation details: - Requires distribution to have reached at least minDistributedBlock - This allows configuration changes after calling distributePendingIssuance(blockNumber) while paused - Only the default target is notified (target rates don't change, only default target changes) - Target rates stay fixed; default target absorbs the change - Whenever the rate is changed, the updateL2MintAllowance function _must_ be called on the L1GraphTokenGateway in L1, to ensure the bridge can mint the right amount of tokensRate changes while paused: The new rate applies retroactively to the entire undistributed period when distribution resumes. Governance must exercise caution to ensure rates are applied to the correct block range. Use distributePendingIssuance(blockNumber) to control precisely which block the new rate applies from.\",\"params\":{\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"newIssuancePerBlock\":\"New issuance per block\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock\"}},\"setSelfMintingEventMode(uint8)\":{\"details\":\"None: Skip event emission entirely (lowest gas)Aggregate: Emit single aggregated event for all self-minting (medium gas)PerTarget: Emit events for each target with self-minting (highest gas)Self-minting targets should call getTargetIssuancePerBlock() rather than relying on events\",\"params\":{\"newMode\":\"The new emission mode (None, Aggregate, or PerTarget)\"},\"returns\":{\"_0\":\"True if the mode was set (including if already set to that mode)\"}},\"setTargetAllocation(address,uint256)\":{\"details\":\"This variant sets selfMintingRate to 0 and evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256)\":{\"details\":\"This variant sets evenIfDistributionPending to false\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if not applied\"}},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"details\":\"Implementation details: - Requires distribution has reached at least minDistributedBlock issuance to change allocation - This allows configuration changes while paused by being deliberate about which block to distribute to - If the new allocations are the same as the current allocations, this function is a no-op - If both allocations are 0 and the target doesn't exist, this function is a no-op - If both allocations are 0 and the target exists, the target will be removed - If any allocation is non-zero and the target doesn't exist, the target will be added - Will revert if the total allocation would exceed available capacity (default target + current target allocation) - Will revert if attempting to add a target that doesn't support IIssuanceTargetSelf-minting targets must call getTargetIssuancePerBlock to determine their issuance and mint accordingly. See contract header for details on self-minting vs allocator-minting allocation.\",\"params\":{\"allocatorMintingRate\":\"Allocator-minting rate for the target (tokens per block)\",\"minDistributedBlock\":\"Minimum block number that distribution must have reached\",\"selfMintingRate\":\"Self-minting rate for the target (tokens per block)\",\"target\":\"The target contract to update\"},\"returns\":{\"_0\":\"True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock and therefore the change was not applied\"}},\"supportsInterface(bytes4)\":{\"details\":\"Supports the four IssuanceAllocator sub-interfaces\"},\"unpause()\":{\"details\":\"Resumes contract operations. Only functions using whenPaused modifier will be affected.\"}},\"title\":\"IssuanceAllocatorTestHarness\",\"version\":1},\"userdoc\":{\"errors\":{\"CannotSetAllocationForDefaultTarget(address)\":[{\"notice\":\"Thrown when attempting to set allocation for the default target\"}],\"CannotSetDefaultToAllocatedTarget(address)\":[{\"notice\":\"Thrown when attempting to set default target address to a normally allocated target\"}],\"GovernorCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the governor to the zero address\"}],\"GraphTokenCannotBeZeroAddress()\":[{\"notice\":\"Thrown when attempting to set the Graph Token to the zero address\"}],\"InsufficientAllocationAvailable(uint256,uint256)\":[{\"notice\":\"Thrown when the total allocation would exceed available budget\"}],\"InsufficientUnallocatedForRateDecrease(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when attempting to decrease issuance rate without sufficient unallocated budget\"}],\"TargetAddressCannotBeZero()\":[{\"notice\":\"Thrown when attempting to add a target with zero address\"}],\"TargetDoesNotSupportIIssuanceTarget(address)\":[{\"notice\":\"Thrown when a target does not support the IIssuanceTarget interface\"}],\"ToBlockOutOfRange(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when toBlockNumber is out of valid range for accumulation\"}]},\"events\":{\"DefaultTargetUpdated(address,address)\":{\"notice\":\"Emitted when the default target is updated\"},\"IssuanceDistributed(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when issuance is distributed to a target\"},\"IssuancePerBlockUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the issuance per block is updated\"},\"IssuanceSelfMintAllowance(address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting allowance is calculated for a target\"},\"IssuanceSelfMintAllowanceAggregate(uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting allowance is calculated in aggregate mode\"},\"SelfMintingEventModeUpdated(uint8,uint8)\":{\"notice\":\"Emitted when self-minting event mode is changed\"},\"SelfMintingOffsetAccumulated(uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting offset accumulates during pause or catch-up\"},\"SelfMintingOffsetReconciled(uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when self-minting offset is reconciled during pending distribution\"},\"TargetAllocationUpdated(address,uint256,uint256)\":{\"notice\":\"Emitted when a target's allocation is updated\"}},\"kind\":\"user\",\"methods\":{\"GOVERNOR_ROLE()\":{\"notice\":\"Role identifier for governor accounts\"},\"MILLION()\":{\"notice\":\"One million - used as the denominator for values provided as Parts Per Million (PPM)\"},\"OPERATOR_ROLE()\":{\"notice\":\"Role identifier for operator accounts\"},\"PAUSE_ROLE()\":{\"notice\":\"Role identifier for pause accounts\"},\"constructor\":{\"notice\":\"Constructor for the test harness\"},\"distributeIssuance()\":{\"notice\":\"Distribute issuance to allocated non-self-minting targets.\"},\"distributePendingIssuance()\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance\"},\"distributePendingIssuance(uint256)\":{\"notice\":\"Distribute pending accumulated allocator-minting issuance up to specified block\"},\"exposedDistributePendingProportionally(uint256,uint256,uint256)\":{\"notice\":\"Exposes _distributePendingProportionally for testing\"},\"exposedDistributePendingWithFullRate(uint256,uint256,uint256,uint256)\":{\"notice\":\"Exposes _distributePendingWithFullRate for testing\"},\"forceTargetNoChangeNotificationBlock(address,uint256)\":{\"notice\":\"Force set the lastChangeNotifiedBlock for a target to a specific block number\"},\"getDistributionState()\":{\"notice\":\"Get pending issuance distribution state\"},\"getIssuancePerBlock()\":{\"notice\":\"Get the current issuance per block\"},\"getSelfMintingEventMode()\":{\"notice\":\"Get the current self-minting event emission mode\"},\"getTargetAllocation(address)\":{\"notice\":\"Get the current allocation for a target\"},\"getTargetAt(uint256)\":{\"notice\":\"Get a specific allocated target address by index\"},\"getTargetCount()\":{\"notice\":\"Get the number of allocated targets\"},\"getTargetData(address)\":{\"notice\":\"Get target data for a specific target\"},\"getTargetIssuancePerBlock(address)\":{\"notice\":\"Target issuance per block information\"},\"getTargets()\":{\"notice\":\"Get all allocated target addresses\"},\"getTotalAllocation()\":{\"notice\":\"Get the current global allocation totals\"},\"initialize(address)\":{\"notice\":\"Initialize the IssuanceAllocator contract\"},\"notifyTarget(address)\":{\"notice\":\"Notify a specific target about an upcoming allocation change\"},\"pause()\":{\"notice\":\"Pause the contract\"},\"paused()\":{\"notice\":\"Check if the contract is currently paused\"},\"setDefaultTarget(address)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setDefaultTarget(address,uint256)\":{\"notice\":\"Set the address that receives the default portion of issuance not allocated to other targets\"},\"setIssuancePerBlock(uint256)\":{\"notice\":\"Set the issuance per block.\"},\"setIssuancePerBlock(uint256,uint256)\":{\"notice\":\"Set the issuance per block, requiring distribution has reached at least the specified block\"},\"setSelfMintingEventMode(uint8)\":{\"notice\":\"Set the self-minting event emission mode\"},\"setTargetAllocation(address,uint256)\":{\"notice\":\"Set the allocation for a target with only allocator minting\"},\"setTargetAllocation(address,uint256,uint256)\":{\"notice\":\"Set the allocation for a target with both allocator and self minting\"},\"setTargetAllocation(address,uint256,uint256,uint256)\":{\"notice\":\"Set the allocation for a target, provided distribution has reached at least the specified block\"},\"unpause()\":{\"notice\":\"Unpause the contract\"}},\"notice\":\"Test harness to expose internal functions for white-box testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/test/allocate/IssuanceAllocatorTestHarness.sol\":\"IssuanceAllocatorTestHarness\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol\":{\"keccak256\":\"0xb4d95a9c0ce489cd8df7f047dcbfc19c4a4ec9d05878b2bef4f3abd5fa4e91ef\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7923e80806cfbf8cf9d78c4de574b7e0a6c9f87b81702303b7170adf935ffb5c\",\"dweb:/ipfs/QmVVLV3jzxjS3HoRyg1C9hHcnWqV8ux1QaEwZgFKXrDu1X\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol\":{\"keccak256\":\"0x4c01f32e6a019dd5f8c3946b652c947a6cf05f9a4542328b3329a49f06b47181\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0db23b187a7b8b7263a9781f97bef15616df4d66fea2dc72541e6592bc18d73\",\"dweb:/ipfs/QmdJZhN1o8yc2yQjPKZrgySCdMUF6UeoprEbyvKtYTmnyw\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol\":{\"keccak256\":\"0x6927a5d307ac841444e03af363c41c7ba032693074614f0e3ee1e25c6f8789e1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://906d824aa38a6e6daa83f34cdfc1d9b0a9ff5f895b4a2083b9a7b7d5d8285397\",\"dweb:/ipfs/QmZCCSW7Nxtf3tLPnHazMhsyDPBBiAHqfzceGdb6CFNNEJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol\":{\"keccak256\":\"0xdeeda74ab0868b7dc38bb7719c09394fe4d652532978dfdbb72320486190bb29\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7bffd43fb18d81fea035b60f11a450806bef79221c22b92be72e9d23d9920f89\",\"dweb:/ipfs/QmbSBpkAhYb5Zm3ZPDPaHrqupTXu1sP2SY99NUGgvYeGXt\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol\":{\"keccak256\":\"0xb60ae62d0ab5cb8a9d06b922f036500e2fc5f0a491ea3322df6db8124ffd1a6a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://25404feafd215b17a25d71661d308ad19c6604f2f32b2447b1337e60974934cb\",\"dweb:/ipfs/QmYyQVQaU5fdfqgbQ1CQXVkBZhW53FiZBC79E42cWEEjnJ\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x85a70e2b1b65e9ba456add364d22b97eb9944083df1c39c0b4bd6a4b5aa386a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d32a33be6ca4d8e89b9e82e3f9cec7a6c4e040534152313ff55da85b8f193059\",\"dweb:/ipfs/QmeR55L8t2A8xZ1nvT5y4yVWfFbbmpaGAtGBMz3GGNpuyP\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol\":{\"keccak256\":\"0x52d72be5f7529846ba76aacf0c49de92bde89a5203b6fbc3919e7384c0df0905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d5e789d39c6623db24d427ca8380978f44cc736070e2ac3ee19f88095c43b17\",\"dweb:/ipfs/QmSzyMMTnZrUWY2e4B2U3VE2fjz8AFawhk7jex8SPW1eT2\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x6694b63ddb2c59bbe341c846171798350e8f72fa02189fcdeaca864e28b54e1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d945d33e2189ac4e531e4ed228f59ca957b3898c4f9051f4b8c7ae44d72b23a\",\"dweb:/ipfs/QmRcEwubTe3xyXxthijs5fVzEgUFSxeddjd5PGfhBnkunX\"]},\"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xbc97d8c0d67d4d7eba1e662f0a8671712ace9e060ab03af547c4bb321aec1d8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://890d156f50630d52c7be57d7e0499132d6fd92b2e1365b81531f4463b3304377\",\"dweb:/ipfs/QmUHe9uL1ciePH2pQg7wdrgTAFRZWjcpBEAg8V1UNtXutd\"]},\"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0xe56ff5015046505f81f9d62671a784e933dd099db4c3a8fa8de598f20af2c5a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://355863359b4a250f7016836ef9a9672578e898503896f70a0d42b80141586f3e\",\"dweb:/ipfs/QmXXzvoMSFNQf8nRbcyRap5qzcbekWuzbXDY5C8f68JiG3\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"project/contracts/allocate/IssuanceAllocator.sol\":{\"keccak256\":\"0x92a7c7222c0fb46810379bad60580c696211a503eaeb9493f959cfc8bd15c0bb\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://777fc3a30931a34863ec9eccb5d0e1b4f501776a7d123924a541085d63142cc7\",\"dweb:/ipfs/QmcGV8gbi6L46PrN85crur8BBnu8eo44qiUTXYVbXBEqeP\"]},\"project/contracts/common/BaseUpgradeable.sol\":{\"keccak256\":\"0x78604bc34c8f141aeae60c342c88d3665ceb74787f9becfcb4847247cff4e79e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://28bd9105960c7c3769d5c27d8ba2d78afe8d55bd4baaccc9dcc0c26468e719ae\",\"dweb:/ipfs/QmSojY3oUAxUieyr67ggKdP2jdbfBQDsexkTdWt4t7jTM6\"]},\"project/contracts/common/IGraphToken.sol\":{\"keccak256\":\"0xfdc400179050b90ce5170c12bcadb22de1b0a7b22add8c5d72a9e3dfa1ccaad1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a0e3d4d02da94e103036a64a4d549efaa04289997cfbc039e415917615050f44\",\"dweb:/ipfs/QmYq7oDWg33TBmJa9FcXNdovANgP1X2dnidcCaDFrgzX4J\"]},\"project/contracts/test/allocate/IssuanceAllocatorTestHarness.sol\":{\"keccak256\":\"0xd55ba1f85d59e9eda7abe24660cc84fe8e806fad82d46dcbdcb46881a3d03539\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d7879113b78b3602f6325a6658124232c491d2557d601b5365be613df35b3240\",\"dweb:/ipfs/QmSWFPG87SeDGhv2eS4UuNe5bnwecgbPvisM3QmvrqjjAg\"]}},\"version\":1}"}},"project/contracts/test/allocate/MockNotificationTracker.sol":{"MockNotificationTracker":{"abi":[{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"count","type":"uint256"}],"name":"NotificationReceived","type":"event"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastNotificationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notificationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resetNotificationCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_issuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608080604052346015576101c1908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610138575080633df8d682146100d95780636251b205146100bc57806371342f0c146100a0578063931c0ac11461007b5763cbe3fe621461005e575f80fd5b34610077575f366003190112610077575f808055600155005b5f80fd5b34610077576020366003190112610077576004356001600160a01b0381160361007757005b34610077575f3660031901126100775760205f54604051908152f35b34610077575f366003190112610077576020600154604051908152f35b34610077575f366003190112610077575f545f19811461012457600101805f5543600155437fd30d8d39ed9738fcbc30cabdfaaed97ab3319ec0f3ae4488a9b3e408a507b1c65f80a3005b634e487b7160e01b5f52601160045260245ffd5b34610077576020366003190112610077576004359063ffffffff60e01b82168092036100775760209163aee4dc4360e01b811490811561017a575b5015158152f35b6301ffc9a760e01b1490508361017356fea26469706673582212209f019eb3715daa82e8a751df698d6b3e309ca6cc93b95824701cbc37a25bc23364736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x15 JUMPI PUSH2 0x1C1 SWAP1 DUP2 PUSH2 0x1A DUP3 CODECOPY RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x6251B205 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x71342F0C EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0x7B JUMPI PUSH4 0xCBE3FE62 EQ PUSH2 0x5E JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH0 DUP1 DUP1 SSTORE PUSH1 0x1 SSTORE STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH2 0x77 JUMPI STOP JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x20 PUSH0 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x20 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH0 SLOAD PUSH0 NOT DUP2 EQ PUSH2 0x124 JUMPI PUSH1 0x1 ADD DUP1 PUSH0 SSTORE NUMBER PUSH1 0x1 SSTORE NUMBER PUSH32 0xD30D8D39ED9738FCBC30CABDFAAED97AB3319EC0F3AE4488A9B3E408A507B1C6 PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x77 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x17A JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x173 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 ADD SWAP15 0xB3 PUSH18 0x5DAA82E8A751DF698D6B3E309CA6CC93B958 0x24 PUSH17 0x1CBC37A25BC23364736F6C634300082100 CALLER ","sourceMap":"446:1409:48:-:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610138575080633df8d682146100d95780636251b205146100bc57806371342f0c146100a0578063931c0ac11461007b5763cbe3fe621461005e575f80fd5b34610077575f366003190112610077575f808055600155005b5f80fd5b34610077576020366003190112610077576004356001600160a01b0381160361007757005b34610077575f3660031901126100775760205f54604051908152f35b34610077575f366003190112610077576020600154604051908152f35b34610077575f366003190112610077575f545f19811461012457600101805f5543600155437fd30d8d39ed9738fcbc30cabdfaaed97ab3319ec0f3ae4488a9b3e408a507b1c65f80a3005b634e487b7160e01b5f52601160045260245ffd5b34610077576020366003190112610077576004359063ffffffff60e01b82168092036100775760209163aee4dc4360e01b811490811561017a575b5015158152f35b6301ffc9a760e01b1490508361017356fea26469706673582212209f019eb3715daa82e8a751df698d6b3e309ca6cc93b95824701cbc37a25bc23364736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x138 JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0xD9 JUMPI DUP1 PUSH4 0x6251B205 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x71342F0C EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0x7B JUMPI PUSH4 0xCBE3FE62 EQ PUSH2 0x5E JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH0 DUP1 DUP1 SSTORE PUSH1 0x1 SSTORE STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH2 0x77 JUMPI STOP JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x20 PUSH0 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x20 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH0 SLOAD PUSH0 NOT DUP2 EQ PUSH2 0x124 JUMPI PUSH1 0x1 ADD DUP1 PUSH0 SSTORE NUMBER PUSH1 0x1 SSTORE NUMBER PUSH32 0xD30D8D39ED9738FCBC30CABDFAAED97AB3319EC0F3AE4488A9B3E408A507B1C6 PUSH0 DUP1 LOG3 STOP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST CALLVALUE PUSH2 0x77 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0x77 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0x77 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x17A JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x173 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 ADD SWAP15 0xB3 PUSH18 0x5DAA82E8A751DF698D6B3E309CA6CC93B958 0x24 PUSH17 0x1CBC37A25BC23364736F6C634300082100 CALLER ","sourceMap":"446:1409:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;;;;1821:25;446:1409;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;;-1:-1:-1;;;;;446:1409:48;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;;;;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;677:36;446:1409;;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;;-1:-1:-1;;446:1409:48;;;;;;;;;1212:12;446:1409;;1212:12;1239:53;446:1409;1239:53;;446:1409;;;;;;;;;;;;;;;;;;;-1:-1:-1;;446:1409:48;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1565:48:48;;;:88;;;;446:1409;;;;;;;1565:88;-1:-1:-1;;;829:40:37;;-1:-1:-1;1565:88:48;;"},"methodIdentifiers":{"beforeIssuanceAllocationChange()":"3df8d682","lastNotificationBlock()":"6251b205","notificationCount()":"71342f0c","resetNotificationCount()":"cbe3fe62","setIssuanceAllocator(address)":"931c0ac1","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"NotificationReceived\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastNotificationBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"notificationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resetNotificationCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Records when beforeIssuanceAllocationChange is called\",\"events\":{\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}},\"NotificationReceived(uint256,uint256)\":{\"params\":{\"blockNumber\":\"The block number when notification was received\",\"count\":\"The total notification count after this notification\"}}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"setIssuanceAllocator(address)\":{\"details\":\"This function facilitates upgrades by providing a standard way for targets to change their allocator. Implementations can define their own access control.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"MockNotificationTracker\",\"version\":1},\"userdoc\":{\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"},\"NotificationReceived(uint256,uint256)\":{\"notice\":\"Emitted when a notification is received\"}},\"kind\":\"user\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"lastNotificationBlock()\":{\"notice\":\"Block number of the last notification received\"},\"notificationCount()\":{\"notice\":\"Number of times the contract has been notified\"},\"resetNotificationCount()\":{\"notice\":\"Resets the notification counter and last block to zero\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"}},\"notice\":\"A mock contract that tracks notification calls for testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/test/allocate/MockNotificationTracker.sol\":\"MockNotificationTracker\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"project/contracts/test/allocate/MockNotificationTracker.sol\":{\"keccak256\":\"0xab6e154dc42a1fc327e354e9c9f71ad44295d22683dc46a469dc8bb6de0223ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c96dda4a8d401ca1f2bc88b7021921077821fcaae117a6c5ca50c4b7ba0eb2\",\"dweb:/ipfs/QmYfNMKmyGYc8vE1GRt6bwWGppSM4S6UMnjm3D8bkiCELN\"]}},\"version\":1}"}},"project/contracts/test/allocate/MockReentrantTarget.sol":{"MockReentrantTarget":{"abi":[{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"inputs":[],"name":"actionToPerform","outputs":[{"internalType":"enum MockReentrantTarget.ReentrantAction","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"issuanceAllocator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_issuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum MockReentrantTarget.ReentrantAction","name":"_action","type":"uint8"}],"name":"setReentrantAction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldAttemptReentrancy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601557610624908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461019457508063368b381f1461014c5780633df8d68214610132578063931c0ac1146100f7578063c3e15de1146100d0578063e4679dd2146100ac5763feeeda7914610069575f80fd5b346100a8575f3660031901126100a85760ff5f5460a01c16604051600c821015610094576020918152f35b634e487b7160e01b5f52602160045260245ffd5b5f80fd5b346100a8575f3660031901126100a857602060ff5f5460a81c166040519015158152f35b346100a8575f3660031901126100a8575f546040516001600160a01b039091168152602090f35b346100a85760203660031901126100a8576004356001600160a01b038116908190036100a8575f80546001600160a01b031916919091179055005b346100a8575f3660031901126100a85761014a610244565b005b346100a85760203660031901126100a857600435600c8110156100a8575f805461ffff60a01b191660a083901b60ff60a01b161791151560a81b60ff60a81b16919091179055005b346100a85760203660031901126100a8576004359063ffffffff60e01b82168092036100a85760209163aee4dc4360e01b81149081156101d6575b5015158152f35b6301ffc9a760e01b149050836101cf565b90601f8019910116810190811067ffffffffffffffff82111761020957604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126100a8575190565b908160209103126100a8575180151581036100a85790565b5f5460ff8160a81c161561029e5760ff8160a01c16600c81101561009457600181036102d45750505f805460405163049bdfcb60e41b81529160209183916004918391906001600160a01b03165af180156102c9576102a1575b50565b61029e9060203d6020116102c2575b6102ba81836101e7565b81019061021d565b503d6102b0565b6040513d5f823e3d90fd5b600281036103485750505f805460405163221cc87d60e11b81523060048201526103e860248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b61029e9060203d602011610341575b61033981836101e7565b81019061022c565b503d61032f565b6003810361039b5750505f805460405163323d9b4160e11b81523060048201526103e86024820152604481018390529160209183916064918391906001600160a01b03165af180156102c9576103205750565b600481036103f45750505f80546040516330b2cd5160e21b81523060048201526103e86024820152604481018390524360648201529160209183916084918391906001600160a01b03165af180156102c9576103205750565b6005810361043a5750505f8054604051631156bdc160e01b81526103e860048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b600681036104865750505f8054604051633189ede960e21b81526103e860048201524360248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b600781036104ca5750505f8054604051631221da4f60e21b81523060048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b6008810361050e5750505f80546040516334be799160e11b81523060048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b600981036105585750505f805460405163d012a15b60e01b81523060048201524360248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b600a81036105965750505f8054604051633af5b07360e01b81529160209183916004918391906001600160a01b03165af180156102c9576102a15750565b600b146105a05750565b6040516314b0386360e21b815243600482015290602090829060249082905f906001600160a01b03165af180156102c9571561029e5761029e9060203d6020116102c2576102ba81836101e756fea2646970667358221220961968de7337b4acbe65ee12039e87c610dc85c7f493667e92b0e5feb6780dd864736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x15 JUMPI PUSH2 0x624 SWAP1 DUP2 PUSH2 0x1A DUP3 CODECOPY RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x194 JUMPI POP DUP1 PUSH4 0x368B381F EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0xC3E15DE1 EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xE4679DD2 EQ PUSH2 0xAC JUMPI PUSH4 0xFEEEDA79 EQ PUSH2 0x69 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0xFF PUSH0 SLOAD PUSH1 0xA0 SHR AND PUSH1 0x40 MLOAD PUSH1 0xC DUP3 LT ISZERO PUSH2 0x94 JUMPI PUSH1 0x20 SWAP2 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 SLOAD PUSH1 0xA8 SHR AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0xA8 JUMPI PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH2 0x14A PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0xC DUP2 LT ISZERO PUSH2 0xA8 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0xA0 DUP4 SWAP1 SHL PUSH1 0xFF PUSH1 0xA0 SHL AND OR SWAP2 ISZERO ISZERO PUSH1 0xA8 SHL PUSH1 0xFF PUSH1 0xA8 SHL AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0xA8 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x1D6 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x1CF JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x209 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xA8 JUMPI MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xA8 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xA8 JUMPI SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0xFF DUP2 PUSH1 0xA8 SHR AND ISZERO PUSH2 0x29E JUMPI PUSH1 0xFF DUP2 PUSH1 0xA0 SHR AND PUSH1 0xC DUP2 LT ISZERO PUSH2 0x94 JUMPI PUSH1 0x1 DUP2 SUB PUSH2 0x2D4 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49BDFCB PUSH1 0xE4 SHL DUP2 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x4 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x2A1 JUMPI JUMPDEST POP JUMP JUMPDEST PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2C2 JUMPI JUMPDEST PUSH2 0x2BA DUP2 DUP4 PUSH2 0x1E7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x21D JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0x348 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x221CC87D PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x341 JUMPI JUMPDEST PUSH2 0x339 DUP2 DUP4 PUSH2 0x1E7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x22C JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x32F JUMP JUMPDEST PUSH1 0x3 DUP2 SUB PUSH2 0x39B JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x323D9B41 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x64 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x4 DUP2 SUB PUSH2 0x3F4 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x30B2CD51 PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE NUMBER PUSH1 0x64 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x84 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x5 DUP2 SUB PUSH2 0x43A JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1156BDC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x3E8 PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x6 DUP2 SUB PUSH2 0x486 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3189EDE9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0x3E8 PUSH1 0x4 DUP3 ADD MSTORE NUMBER PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x7 DUP2 SUB PUSH2 0x4CA JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1221DA4F PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x8 DUP2 SUB PUSH2 0x50E JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x34BE7991 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x9 DUP2 SUB PUSH2 0x558 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD012A15B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE NUMBER PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0xA DUP2 SUB PUSH2 0x596 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AF5B073 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x4 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x2A1 JUMPI POP JUMP JUMPDEST PUSH1 0xB EQ PUSH2 0x5A0 JUMPI POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x14B03863 PUSH1 0xE2 SHL DUP2 MSTORE NUMBER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x24 SWAP1 DUP3 SWAP1 PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI ISZERO PUSH2 0x29E JUMPI PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2C2 JUMPI PUSH2 0x2BA DUP2 DUP4 PUSH2 0x1E7 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 NOT PUSH9 0xDE7337B4ACBE65EE12 SUB SWAP15 DUP8 0xC6 LT 0xDC DUP6 0xC7 DELEGATECALL SWAP4 PUSH7 0x7E92B0E5FEB678 0xD 0xD8 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"746:3968:49:-:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"abi_decode_bool_fromMemory":{"entryPoint":556,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint256_fromMemory":{"entryPoint":541,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":487,"id":null,"parameterSlots":2,"returnSlots":0},"fun_beforeIssuanceAllocationChange":{"entryPoint":580,"id":14567,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461019457508063368b381f1461014c5780633df8d68214610132578063931c0ac1146100f7578063c3e15de1146100d0578063e4679dd2146100ac5763feeeda7914610069575f80fd5b346100a8575f3660031901126100a85760ff5f5460a01c16604051600c821015610094576020918152f35b634e487b7160e01b5f52602160045260245ffd5b5f80fd5b346100a8575f3660031901126100a857602060ff5f5460a81c166040519015158152f35b346100a8575f3660031901126100a8575f546040516001600160a01b039091168152602090f35b346100a85760203660031901126100a8576004356001600160a01b038116908190036100a8575f80546001600160a01b031916919091179055005b346100a8575f3660031901126100a85761014a610244565b005b346100a85760203660031901126100a857600435600c8110156100a8575f805461ffff60a01b191660a083901b60ff60a01b161791151560a81b60ff60a81b16919091179055005b346100a85760203660031901126100a8576004359063ffffffff60e01b82168092036100a85760209163aee4dc4360e01b81149081156101d6575b5015158152f35b6301ffc9a760e01b149050836101cf565b90601f8019910116810190811067ffffffffffffffff82111761020957604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126100a8575190565b908160209103126100a8575180151581036100a85790565b5f5460ff8160a81c161561029e5760ff8160a01c16600c81101561009457600181036102d45750505f805460405163049bdfcb60e41b81529160209183916004918391906001600160a01b03165af180156102c9576102a1575b50565b61029e9060203d6020116102c2575b6102ba81836101e7565b81019061021d565b503d6102b0565b6040513d5f823e3d90fd5b600281036103485750505f805460405163221cc87d60e11b81523060048201526103e860248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b61029e9060203d602011610341575b61033981836101e7565b81019061022c565b503d61032f565b6003810361039b5750505f805460405163323d9b4160e11b81523060048201526103e86024820152604481018390529160209183916064918391906001600160a01b03165af180156102c9576103205750565b600481036103f45750505f80546040516330b2cd5160e21b81523060048201526103e86024820152604481018390524360648201529160209183916084918391906001600160a01b03165af180156102c9576103205750565b6005810361043a5750505f8054604051631156bdc160e01b81526103e860048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b600681036104865750505f8054604051633189ede960e21b81526103e860048201524360248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b600781036104ca5750505f8054604051631221da4f60e21b81523060048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b6008810361050e5750505f80546040516334be799160e11b81523060048201529160209183916024918391906001600160a01b03165af180156102c9576103205750565b600981036105585750505f805460405163d012a15b60e01b81523060048201524360248201529160209183916044918391906001600160a01b03165af180156102c9576103205750565b600a81036105965750505f8054604051633af5b07360e01b81529160209183916004918391906001600160a01b03165af180156102c9576102a15750565b600b146105a05750565b6040516314b0386360e21b815243600482015290602090829060249082905f906001600160a01b03165af180156102c9571561029e5761029e9060203d6020116102c2576102ba81836101e756fea2646970667358221220961968de7337b4acbe65ee12039e87c610dc85c7f493667e92b0e5feb6780dd864736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH2 0x12 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH2 0x194 JUMPI POP DUP1 PUSH4 0x368B381F EQ PUSH2 0x14C JUMPI DUP1 PUSH4 0x3DF8D682 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x931C0AC1 EQ PUSH2 0xF7 JUMPI DUP1 PUSH4 0xC3E15DE1 EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xE4679DD2 EQ PUSH2 0xAC JUMPI PUSH4 0xFEEEDA79 EQ PUSH2 0x69 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0xFF PUSH0 SLOAD PUSH1 0xA0 SHR AND PUSH1 0x40 MLOAD PUSH1 0xC DUP3 LT ISZERO PUSH2 0x94 JUMPI PUSH1 0x20 SWAP2 DUP2 MSTORE RETURN JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x20 PUSH1 0xFF PUSH0 SLOAD PUSH1 0xA8 SHR AND PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 SWAP1 RETURN JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0xA8 JUMPI PUSH0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH2 0x14A PUSH2 0x244 JUMP JUMPDEST STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0xC DUP2 LT ISZERO PUSH2 0xA8 JUMPI PUSH0 DUP1 SLOAD PUSH2 0xFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0xA0 DUP4 SWAP1 SHL PUSH1 0xFF PUSH1 0xA0 SHL AND OR SWAP2 ISZERO ISZERO PUSH1 0xA8 SHL PUSH1 0xFF PUSH1 0xA8 SHL AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE STOP JUMPDEST CALLVALUE PUSH2 0xA8 JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH2 0xA8 JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH2 0xA8 JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH2 0x1D6 JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH2 0x1CF JUMP JUMPDEST SWAP1 PUSH1 0x1F DUP1 NOT SWAP2 ADD AND DUP2 ADD SWAP1 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR PUSH2 0x209 JUMPI PUSH1 0x40 MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xA8 JUMPI MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 PUSH1 0x20 SWAP2 SUB SLT PUSH2 0xA8 JUMPI MLOAD DUP1 ISZERO ISZERO DUP2 SUB PUSH2 0xA8 JUMPI SWAP1 JUMP JUMPDEST PUSH0 SLOAD PUSH1 0xFF DUP2 PUSH1 0xA8 SHR AND ISZERO PUSH2 0x29E JUMPI PUSH1 0xFF DUP2 PUSH1 0xA0 SHR AND PUSH1 0xC DUP2 LT ISZERO PUSH2 0x94 JUMPI PUSH1 0x1 DUP2 SUB PUSH2 0x2D4 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49BDFCB PUSH1 0xE4 SHL DUP2 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x4 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x2A1 JUMPI JUMPDEST POP JUMP JUMPDEST PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2C2 JUMPI JUMPDEST PUSH2 0x2BA DUP2 DUP4 PUSH2 0x1E7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x21D JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x2B0 JUMP JUMPDEST PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 SUB PUSH2 0x348 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x221CC87D PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x341 JUMPI JUMPDEST PUSH2 0x339 DUP2 DUP4 PUSH2 0x1E7 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x22C JUMP JUMPDEST POP RETURNDATASIZE PUSH2 0x32F JUMP JUMPDEST PUSH1 0x3 DUP2 SUB PUSH2 0x39B JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x323D9B41 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x64 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x4 DUP2 SUB PUSH2 0x3F4 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x30B2CD51 PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x3E8 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE NUMBER PUSH1 0x64 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x84 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x5 DUP2 SUB PUSH2 0x43A JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1156BDC1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0x3E8 PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x6 DUP2 SUB PUSH2 0x486 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3189EDE9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0x3E8 PUSH1 0x4 DUP3 ADD MSTORE NUMBER PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x7 DUP2 SUB PUSH2 0x4CA JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1221DA4F PUSH1 0xE2 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x8 DUP2 SUB PUSH2 0x50E JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x34BE7991 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x24 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0x9 DUP2 SUB PUSH2 0x558 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD012A15B PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE NUMBER PUSH1 0x24 DUP3 ADD MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x44 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x320 JUMPI POP JUMP JUMPDEST PUSH1 0xA DUP2 SUB PUSH2 0x596 JUMPI POP POP PUSH0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AF5B073 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 PUSH1 0x20 SWAP2 DUP4 SWAP2 PUSH1 0x4 SWAP2 DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI PUSH2 0x2A1 JUMPI POP JUMP JUMPDEST PUSH1 0xB EQ PUSH2 0x5A0 JUMPI POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x14B03863 PUSH1 0xE2 SHL DUP2 MSTORE NUMBER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x24 SWAP1 DUP3 SWAP1 PUSH0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GAS CALL DUP1 ISZERO PUSH2 0x2C9 JUMPI ISZERO PUSH2 0x29E JUMPI PUSH2 0x29E SWAP1 PUSH1 0x20 RETURNDATASIZE PUSH1 0x20 GT PUSH2 0x2C2 JUMPI PUSH2 0x2BA DUP2 DUP4 PUSH2 0x1E7 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP7 NOT PUSH9 0xDE7337B4ACBE65EE12 SUB SWAP15 DUP8 0xC6 LT 0xDC DUP6 0xC7 DELEGATECALL SWAP4 PUSH7 0x7E92B0E5FEB678 0xD 0xD8 PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"746:3968:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;;;-1:-1:-1;;;;;746:3968:49;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;-1:-1:-1;;;;;746:3968:49;;;;;;;;;;;-1:-1:-1;;;;;;746:3968:49;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;;;;;;;;;;-1:-1:-1;;;;746:3968:49;;;;;-1:-1:-1;;;746:3968:49;;1791:31;;;746:3968;;-1:-1:-1;;;746:3968:49;;;;;;;;;;;;;;-1:-1:-1;;746:3968:49;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4617:48:49;;;:88;;;;746:3968;;;;;;;4617:88;-1:-1:-1;;;829:40:37;;-1:-1:-1;4617:88:49;;;746:3968;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;746:3968:49;;;;;-1:-1:-1;746:3968:49;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;1871:2432::-;1946:23;746:3968;;;;;;1945:24;1941:37;;746:3968;;;;;;;;;;;2068:34;2049:53;;2068:34;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;2118:71:49;;746:3968;2118:71;;746:3968;;2118:71;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;2118:71;;;;;;;;2045:2252;;1871:2432::o;2118:71::-;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;746:3968;;;1946:23;746:3968;;;;;2045:2252;2229:41;2210:60;;2229:41;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;2286:156:49;;2400:4;2286:156;;;746:3968;2424:4;746:3968;;;;;;;;;2286:156;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;2286:156;;;;;;;;2206:2091;1871:2432::o;2286:156::-;;;746:3968;2286:156;746:3968;2286:156;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2206:2091;2482:41;2463:60;;2482:41;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;2539:175:49;;2653:4;2539:175;;;746:3968;2677:4;746:3968;;;;;;;;;;;;;;;2539:175;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;2539:175;;;;;;;;2459:1838;1871:2432::o;2459:1838::-;2754:41;2735:60;;2754:41;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;2811:205:49;;2925:4;2754:41;2811:205;;746:3968;2949:4;746:3968;;;;;;;;;;2990:12;746:3968;;;;;;;;;2811:205;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;2811:205;;;;;;;;2731:1566;1871:2432::o;2731:1566::-;3056:35;3037:54;;3056:35;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;3107:78:49;;3180:4;2754:41;3107:78;;746:3968;;;;;;3107:78;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;3107:78;;;;;;;;3033:1264;1871:2432::o;3033:1264::-;3225:41;3206:60;;3225:41;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;3282:92:49;;3355:4;2754:41;3282:92;;746:3968;3361:12;746:3968;;;;;;;;;3282:92;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;3282:92;;;;;;;;3202:1095;1871:2432::o;3202:1095::-;3414:28;3395:47;;3414:28;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;3458:80:49;;3532:4;2754:41;3458:80;;746:3968;;;;;;3458:80;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;3458:80;;;;;;;;3391:906;1871:2432::o;3391:906::-;3578:38;3559:57;;3578:38;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;3632:84:49;;3710:4;2754:41;3632:84;;746:3968;;;;;;3632:84;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;3632:84;;;;;;;;3555:742;1871:2432::o;3555:742::-;3756:38;3737:57;;3756:38;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;3810:98:49;;3888:4;2754:41;3810:98;;746:3968;3895:12;746:3968;;;;;;;;;3810:98;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;3810:98;;;;;;;;3733:564;1871:2432::o;3733:564::-;3948:47;3929:66;;3948:47;;-1:-1:-1;;1946:23:49;746:3968;;;;-1:-1:-1;;;4011:80:49;;746:3968;4011:80;;746:3968;;2754:41;;746:3968;;1946:23;-1:-1:-1;;;;;746:3968:49;4011:80;;;;;;;;3925:372;1871:2432::o;3925:372::-;4131:47;4112:66;4108:189;;3925:372;1871:2432::o;4108:189::-;746:3968;;-1:-1:-1;;;4194:92:49;;4273:12;2754:41;4194:92;;746:3968;;;;;;4194:92;;746:3968;;1946:23;;-1:-1:-1;;;;;746:3968:49;4194:92;;;;;;;4108:189;4194:92;;;746:3968;4194:92;746:3968;4194:92;;;;;;;:::i"},"methodIdentifiers":{"actionToPerform()":"feeeda79","beforeIssuanceAllocationChange()":"3df8d682","issuanceAllocator()":"c3e15de1","setIssuanceAllocator(address)":"931c0ac1","setReentrantAction(uint8)":"368b381f","shouldAttemptReentrancy()":"e4679dd2","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"actionToPerform\",\"outputs\":[{\"internalType\":\"enum MockReentrantTarget.ReentrantAction\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issuanceAllocator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MockReentrantTarget.ReentrantAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"setReentrantAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shouldAttemptReentrancy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Used for testing reentrancy protection in IssuanceAllocator\",\"events\":{\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"setIssuanceAllocator(address)\":{\"details\":\"This function facilitates upgrades by providing a standard way for targets to change their allocator. Implementations can define their own access control.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"setReentrantAction(uint8)\":{\"params\":{\"_action\":\"The reentrancy action to configure\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"MockReentrantTarget\",\"version\":1},\"userdoc\":{\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"}},\"kind\":\"user\",\"methods\":{\"actionToPerform()\":{\"notice\":\"The configured reentrancy action to perform\"},\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"issuanceAllocator()\":{\"notice\":\"The issuance allocator to target for reentrancy attacks\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"},\"setReentrantAction(uint8)\":{\"notice\":\"Sets the action to perform during reentrancy attempt\"},\"shouldAttemptReentrancy()\":{\"notice\":\"Whether reentrancy should be attempted\"}},\"notice\":\"A malicious mock contract that attempts reentrancy attacks for testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/test/allocate/MockReentrantTarget.sol\":\"MockReentrantTarget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol\":{\"keccak256\":\"0xb4d95a9c0ce489cd8df7f047dcbfc19c4a4ec9d05878b2bef4f3abd5fa4e91ef\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7923e80806cfbf8cf9d78c4de574b7e0a6c9f87b81702303b7170adf935ffb5c\",\"dweb:/ipfs/QmVVLV3jzxjS3HoRyg1C9hHcnWqV8ux1QaEwZgFKXrDu1X\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol\":{\"keccak256\":\"0x6927a5d307ac841444e03af363c41c7ba032693074614f0e3ee1e25c6f8789e1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://906d824aa38a6e6daa83f34cdfc1d9b0a9ff5f895b4a2083b9a7b7d5d8285397\",\"dweb:/ipfs/QmZCCSW7Nxtf3tLPnHazMhsyDPBBiAHqfzceGdb6CFNNEJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol\":{\"keccak256\":\"0x5054506b182f49cece8bd7bab5f1d06a7b9d8def75b6c02aecd623aa3bf728cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://48a35b7e89144bc7e9e3d94269d661109775777bd8bcfb013ebd794f6629798a\",\"dweb:/ipfs/Qmbnzo8kVX42WfwkpL8nTZAEB7LTtSCR5xBf97SZbte9XJ\"]},\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"project/contracts/test/allocate/MockReentrantTarget.sol\":{\"keccak256\":\"0x40962c3c58f86a4ae55ae7381832528be0dc771610f03d6f9e3ea8aad7ec9380\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba94ce1f5f10f03d2df735757a409e2860996ecf873ed4367a50d51a154d7317\",\"dweb:/ipfs/QmX725gsmFMemtqF62FugdQSLwZzwSq9eT4pqxtmjQfBBX\"]}},\"version\":1}"}},"project/contracts/test/allocate/MockRevertingTarget.sol":{"MockRevertingTarget":{"abi":[{"inputs":[],"name":"TargetRevertsIntentionally","type":"error"},{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_issuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60808060405234601557610100908161001a8239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c90816301ffc9a714607c575080633df8d68214605f5763931c0ac1146039575f80fd5b34605b576020366003190112605b576004356001600160a01b03811603605b57005b5f80fd5b34605b575f366003190112605b57631abd904160e21b5f5260045ffd5b34605b576020366003190112605b576004359063ffffffff60e01b8216809203605b5760209163aee4dc4360e01b811490811560ba575b5015158152f35b6301ffc9a760e01b1490508360b356fea2646970667358221220763779c5cee05eb041531faca16647485e46fee305d5e78371c3cfdc40ccaba764736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x15 JUMPI PUSH2 0x100 SWAP1 DUP2 PUSH2 0x1A DUP3 CODECOPY RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH1 0x11 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH1 0x7C JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH1 0x5F JUMPI PUSH4 0x931C0AC1 EQ PUSH1 0x39 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH1 0x5B JUMPI STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH4 0x1ABD9041 PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH1 0x5B JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH1 0xBA JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH1 0xB3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x3779C5CEE05EB041531FACA16647485E46FEE305D5E783 PUSH18 0xC3CFDC40CCABA764736F6C63430008210033 ","sourceMap":"457:737:50:-:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"60808060405260043610156011575f80fd5b5f3560e01c90816301ffc9a714607c575080633df8d68214605f5763931c0ac1146039575f80fd5b34605b576020366003190112605b576004356001600160a01b03811603605b57005b5f80fd5b34605b575f366003190112605b57631abd904160e21b5f5260045ffd5b34605b576020366003190112605b576004359063ffffffff60e01b8216809203605b5760209163aee4dc4360e01b811490811560ba575b5015158152f35b6301ffc9a760e01b1490508360b356fea2646970667358221220763779c5cee05eb041531faca16647485e46fee305d5e78371c3cfdc40ccaba764736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH1 0x11 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH1 0x7C JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH1 0x5F JUMPI PUSH4 0x931C0AC1 EQ PUSH1 0x39 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH1 0x5B JUMPI STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH4 0x1ABD9041 PUSH1 0xE2 SHL PUSH0 MSTORE PUSH1 0x4 PUSH0 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH1 0x5B JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH1 0xBA JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH1 0xB3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH23 0x3779C5CEE05EB041531FACA16647485E46FEE305D5E783 PUSH18 0xC3CFDC40CCABA764736F6C63430008210033 ","sourceMap":"457:737:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;457:737:50;;;;;;-1:-1:-1;;;;;457:737:50;;;;;;;;;;;;;;;;-1:-1:-1;;457:737:50;;;;759:28;;;457:737;759:28;457:737;;759:28;457:737;;;;;;-1:-1:-1;;457:737:50;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1097:48:50;;;:88;;;;457:737;;;;;;;1097:88;-1:-1:-1;;;829:40:37;;-1:-1:-1;1097:88:50;;"},"methodIdentifiers":{"beforeIssuanceAllocationChange()":"3df8d682","setIssuanceAllocator(address)":"931c0ac1","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"TargetRevertsIntentionally\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Used for testing error handling in IssuanceAllocator\",\"events\":{\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"setIssuanceAllocator(address)\":{\"details\":\"This function facilitates upgrades by providing a standard way for targets to change their allocator. Implementations can define their own access control.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"MockRevertingTarget\",\"version\":1},\"userdoc\":{\"errors\":{\"TargetRevertsIntentionally()\":[{\"notice\":\"Error thrown when the target reverts intentionally\"}]},\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"}},\"kind\":\"user\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"}},\"notice\":\"A mock contract that reverts when beforeIssuanceAllocationChange is called\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/test/allocate/MockRevertingTarget.sol\":\"MockRevertingTarget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"project/contracts/test/allocate/MockRevertingTarget.sol\":{\"keccak256\":\"0x3856591e74636a5e91fedb903f89cc0248b3db109f736e7f5fc0295a6b13bb2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0d55c6350aa96645bee7162104a78093d7c784cb065ea89c155c21c6b5415ed\",\"dweb:/ipfs/QmNzP8qBp6r5NoZMG18bK7xKuJyoc22cjne8Fn8sNWadZA\"]}},\"version\":1}"}},"project/contracts/test/allocate/MockSimpleTarget.sol":{"MockSimpleTarget":{"abi":[{"anonymous":false,"inputs":[],"name":"BeforeIssuanceAllocationChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldIssuanceAllocator","type":"address"},{"indexed":true,"internalType":"address","name":"newIssuanceAllocator","type":"address"}],"name":"IssuanceAllocatorSet","type":"event"},{"inputs":[],"name":"beforeIssuanceAllocationChange","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_issuanceAllocator","type":"address"}],"name":"setIssuanceAllocator","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080806040523460145760f390816100198239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c90816301ffc9a714606f575080633df8d68214605f5763931c0ac1146039575f80fd5b34605b576020366003190112605b576004356001600160a01b03811603605b57005b5f80fd5b34605b575f366003190112605b57005b34605b576020366003190112605b576004359063ffffffff60e01b8216809203605b5760209163aee4dc4360e01b811490811560ad575b5015158152f35b6301ffc9a760e01b1490508360a656fea264697066735822122020ab07bcf63d76226b7d754aebb3e854e563e617fe1a1d2523caf9c76c02e25b64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE CALLVALUE PUSH1 0x14 JUMPI PUSH1 0xF3 SWAP1 DUP2 PUSH2 0x19 DUP3 CODECOPY RETURN JUMPDEST PUSH0 DUP1 REVERT INVALID PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH1 0x11 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH1 0x6F JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH1 0x5F JUMPI PUSH4 0x931C0AC1 EQ PUSH1 0x39 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH1 0x5B JUMPI STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI STOP JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH1 0x5B JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH1 0xAD JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH1 0xA6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 0xAB SMOD 0xBC 0xF6 RETURNDATASIZE PUSH23 0x226B7D754AEBB3E854E563E617FE1A1D2523CAF9C76C02 0xE2 JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"451:525:51:-:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"60808060405260043610156011575f80fd5b5f3560e01c90816301ffc9a714606f575080633df8d68214605f5763931c0ac1146039575f80fd5b34605b576020366003190112605b576004356001600160a01b03811603605b57005b5f80fd5b34605b575f366003190112605b57005b34605b576020366003190112605b576004359063ffffffff60e01b8216809203605b5760209163aee4dc4360e01b811490811560ad575b5015158152f35b6301ffc9a760e01b1490508360a656fea264697066735822122020ab07bcf63d76226b7d754aebb3e854e563e617fe1a1d2523caf9c76c02e25b64736f6c63430008210033","opcodes":"PUSH1 0x80 DUP1 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT ISZERO PUSH1 0x11 JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 CALLDATALOAD PUSH1 0xE0 SHR SWAP1 DUP2 PUSH4 0x1FFC9A7 EQ PUSH1 0x6F JUMPI POP DUP1 PUSH4 0x3DF8D682 EQ PUSH1 0x5F JUMPI PUSH4 0x931C0AC1 EQ PUSH1 0x39 JUMPI PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND SUB PUSH1 0x5B JUMPI STOP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH0 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI STOP JUMPDEST CALLVALUE PUSH1 0x5B JUMPI PUSH1 0x20 CALLDATASIZE PUSH1 0x3 NOT ADD SLT PUSH1 0x5B JUMPI PUSH1 0x4 CALLDATALOAD SWAP1 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP3 AND DUP1 SWAP3 SUB PUSH1 0x5B JUMPI PUSH1 0x20 SWAP2 PUSH4 0xAEE4DC43 PUSH1 0xE0 SHL DUP2 EQ SWAP1 DUP2 ISZERO PUSH1 0xAD JUMPI JUMPDEST POP ISZERO ISZERO DUP2 MSTORE RETURN JUMPDEST PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ SWAP1 POP DUP4 PUSH1 0xA6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 0xAB SMOD 0xBC 0xF6 RETURNDATASIZE PUSH23 0x226B7D754AEBB3E854E563E617FE1A1D2523CAF9C76C02 0xE2 JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD 0x21 STOP CALLER ","sourceMap":"451:525:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;451:525:51;;;;;;-1:-1:-1;;;;;451:525:51;;;;;;;;;;;;;;;;-1:-1:-1;;451:525:51;;;;;;;;;;;-1:-1:-1;;451:525:51;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;879:48:51;;;:88;;;;451:525;;;;;;;879:88;-1:-1:-1;;;829:40:37;;-1:-1:-1;879:88:51;;"},"methodIdentifiers":{"beforeIssuanceAllocationChange()":"3df8d682","setIssuanceAllocator(address)":"931c0ac1","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"BeforeIssuanceAllocationChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldIssuanceAllocator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newIssuanceAllocator\",\"type\":\"address\"}],\"name\":\"IssuanceAllocatorSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"beforeIssuanceAllocationChange\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuanceAllocator\",\"type\":\"address\"}],\"name\":\"setIssuanceAllocator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Edge & Node\",\"details\":\"Used for testing basic functionality in IssuanceAllocator\",\"events\":{\"IssuanceAllocatorSet(address,address)\":{\"params\":{\"newIssuanceAllocator\":\"New issuance allocator address\",\"oldIssuanceAllocator\":\"Old issuance allocator address\"}}},\"kind\":\"dev\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"details\":\"The target should ensure that all issuance related calculations are up-to-date with the current block so that an allocation change can be applied correctly. Note that the allocation could change multiple times in the same block after this function has been called, only the final allocation is relevant.\"},\"setIssuanceAllocator(address)\":{\"details\":\"This function facilitates upgrades by providing a standard way for targets to change their allocator. Implementations can define their own access control.\",\"params\":{\"newIssuanceAllocator\":\"Address of the issuance allocator\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"MockSimpleTarget\",\"version\":1},\"userdoc\":{\"events\":{\"BeforeIssuanceAllocationChange()\":{\"notice\":\"Emitted before the issuance allocation changes\"},\"IssuanceAllocatorSet(address,address)\":{\"notice\":\"New issuance allocator set\"}},\"kind\":\"user\",\"methods\":{\"beforeIssuanceAllocationChange()\":{\"notice\":\"Called by the issuance allocator before the target's issuance allocation changes\"},\"setIssuanceAllocator(address)\":{\"notice\":\"Sets the issuance allocator for this target\"}},\"notice\":\"A simple mock contract that implements IIssuanceTarget for testing\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project/contracts/test/allocate/MockSimpleTarget.sol\":\"MockSimpleTarget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\"npm/@openzeppelin/contracts-upgradeable@5.4.0/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\",\"project/:@graphprotocol/interfaces/=npm/@graphprotocol/interfaces@local/\",\"project/:@openzeppelin/contracts-upgradeable/=npm/@openzeppelin/contracts-upgradeable@5.4.0/\",\"project/:@openzeppelin/contracts/=npm/@openzeppelin/contracts@5.4.0/\"],\"viaIR\":true},\"sources\":{\"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol\":{\"keccak256\":\"0xb2a4b8022ec6e6a69f5753e41e8098105dc470430b5efa7d9f982ac52163644f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://57a03884e61a29671e379989572265f4d2f0186f26d13a41bcbe69a2bd0c67cb\",\"dweb:/ipfs/QmVA5w5ECdCvSUv3oXn1hK5YXdeQuppLroGKKEBkr7xZCc\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"project/contracts/test/allocate/MockSimpleTarget.sol\":{\"keccak256\":\"0x220bdc812bb31d3428c6b94fd2a826f92faa585a8f979f08f37330cbff1ecada\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1642ac6f7cf5f9ae3efabd2f5772251d7d2711039c3e9a341af6e09a8bf653ed\",\"dweb:/ipfs/Qmb5hC4YHF4gcvcm83ckw441KTEXBbfVUXEFNjrKkk4STw\"]}},\"version\":1}"}}},"errors":[{"component":"general","errorCode":"2394","formattedMessage":"Warning: Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.\n   --> npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol:108:13:\n    |\n108 |             tstore(slot, value)\n    |             ^^^^^^\n\n","message":"Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.","severity":"warning","sourceLocation":{"end":3125,"file":"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol","start":3119},"type":"Warning"}],"sources":{"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol","exportedSymbols":{"IDataService":[131],"IGraphPayments":[361]},"id":132,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:0"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","file":"../horizon/IGraphPayments.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":132,"sourceUnit":362,"src":"174:63:0","symbolAliases":[{"foreign":{"id":2,"name":"IGraphPayments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"183:14:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IDataService","contractDependencies":[],"contractKind":"interface","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"239:918:0","text":" @title Interface of the base {DataService} contract as defined by the Graph Horizon specification.\n @author Edge & Node\n @notice This interface provides a guardrail for contracts that use the Data Service framework\n to implement a data service on Graph Horizon. Much of the specification is intentionally loose\n to allow for greater flexibility when designing a data service. It's not possible to guarantee that\n an implementation will honor the Data Service framework guidelines so it's advised to always review\n the implementation code and the documentation.\n @dev This interface is expected to be inherited and extended by a data service interface. It can be\n used to interact with it however it's advised to use the more specific parent interface.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":131,"linearizedBaseContracts":[131],"name":"IDataService","nameLocation":"1168:12:0","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5,"nodeType":"StructuredDocumentation","src":"1187:229:0","text":" @notice Emitted when a service provider is registered with the data service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"eventSelector":"159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa","id":11,"name":"ServiceProviderRegistered","nameLocation":"1427:25:0","nodeType":"EventDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"1469:15:0","nodeType":"VariableDeclaration","scope":11,"src":"1453:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"1453:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1492:4:0","nodeType":"VariableDeclaration","scope":11,"src":"1486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8,"name":"bytes","nodeType":"ElementaryTypeName","src":"1486:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1452:45:0"},"src":"1421:77:0"},{"anonymous":false,"documentation":{"id":12,"nodeType":"StructuredDocumentation","src":"1504:182:0","text":" @notice Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\n @param serviceProvider The address of the service provider."},"eventSelector":"f53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a939","id":16,"name":"ProvisionPendingParametersAccepted","nameLocation":"1697:34:0","nodeType":"EventDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"1748:15:0","nodeType":"VariableDeclaration","scope":16,"src":"1732:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1731:33:0"},"src":"1691:74:0"},{"anonymous":false,"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"1771:222:0","text":" @notice Emitted when a service provider starts providing the service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"eventSelector":"d3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e7","id":23,"name":"ServiceStarted","nameLocation":"2004:14:0","nodeType":"EventDefinition","parameters":{"id":22,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"2035:15:0","nodeType":"VariableDeclaration","scope":23,"src":"2019:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"2019:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2058:4:0","nodeType":"VariableDeclaration","scope":23,"src":"2052:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20,"name":"bytes","nodeType":"ElementaryTypeName","src":"2052:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2018:45:0"},"src":"1998:66:0"},{"anonymous":false,"documentation":{"id":24,"nodeType":"StructuredDocumentation","src":"2070:221:0","text":" @notice Emitted when a service provider stops providing the service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"eventSelector":"73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a","id":30,"name":"ServiceStopped","nameLocation":"2302:14:0","nodeType":"EventDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"2333:15:0","nodeType":"VariableDeclaration","scope":30,"src":"2317:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2356:4:0","nodeType":"VariableDeclaration","scope":30,"src":"2350:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27,"name":"bytes","nodeType":"ElementaryTypeName","src":"2350:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2316:45:0"},"src":"2296:66:0"},{"anonymous":false,"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"2368:276:0","text":" @notice Emitted when a service provider collects payment.\n @param serviceProvider The address of the service provider.\n @param feeType The type of fee to collect as defined in {GraphPayments}.\n @param tokens The amount of tokens collected."},"eventSelector":"54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5","id":40,"name":"ServicePaymentCollected","nameLocation":"2655:23:0","nodeType":"EventDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"2704:15:0","nodeType":"VariableDeclaration","scope":40,"src":"2688:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36,"indexed":true,"mutability":"mutable","name":"feeType","nameLocation":"2765:7:0","nodeType":"VariableDeclaration","scope":40,"src":"2729:43:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":35,"nodeType":"UserDefinedTypeName","pathNode":{"id":34,"name":"IGraphPayments.PaymentTypes","nameLocations":["2729:14:0","2744:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"2729:27:0"},"referencedDeclaration":299,"src":"2729:27:0","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":38,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"2790:6:0","nodeType":"VariableDeclaration","scope":40,"src":"2782:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37,"name":"uint256","nodeType":"ElementaryTypeName","src":"2782:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2678:124:0"},"src":"2649:154:0"},{"anonymous":false,"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"2809:188:0","text":" @notice Emitted when a service provider is slashed.\n @param serviceProvider The address of the service provider.\n @param tokens The amount of tokens slashed."},"eventSelector":"02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c58","id":47,"name":"ServiceProviderSlashed","nameLocation":"3008:22:0","nodeType":"EventDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"3047:15:0","nodeType":"VariableDeclaration","scope":47,"src":"3031:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"3031:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"3072:6:0","nodeType":"VariableDeclaration","scope":47,"src":"3064:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44,"name":"uint256","nodeType":"ElementaryTypeName","src":"3064:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3030:49:0"},"src":"3002:78:0"},{"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"3086:903:0","text":" @notice Registers a service provider with the data service. The service provider can now\n start providing the service.\n @dev Before registering, the service provider must have created a provision in the\n Graph Horizon staking contract with parameters that are compatible with the data service.\n Verifies provision parameters and rejects registration in the event they are not valid.\n Emits a {ServiceProviderRegistered} event.\n NOTE: Failing to accept the provision will result in the service provider operating\n on an unverified provision. Depending on of the data service this can be a security\n risk as the protocol won't be able to guarantee economic security for the consumer.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"functionSelector":"24b8fbf6","id":55,"implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"4003:8:0","nodeType":"FunctionDefinition","parameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"serviceProvider","nameLocation":"4020:15:0","nodeType":"VariableDeclaration","scope":55,"src":"4012:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"4012:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"mutability":"mutable","name":"data","nameLocation":"4052:4:0","nodeType":"VariableDeclaration","scope":55,"src":"4037:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51,"name":"bytes","nodeType":"ElementaryTypeName","src":"4037:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4011:46:0"},"returnParameters":{"id":54,"nodeType":"ParameterList","parameters":[],"src":"4066:0:0"},"scope":131,"src":"3994:73:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":56,"nodeType":"StructuredDocumentation","src":"4073:472:0","text":" @notice Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking\n contract}.\n @dev Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}.\n Emits a {ProvisionPendingParametersAccepted} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"functionSelector":"ce0fc0cc","id":63,"implemented":false,"kind":"function","modifiers":[],"name":"acceptProvisionPendingParameters","nameLocation":"4559:32:0","nodeType":"FunctionDefinition","parameters":{"id":61,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58,"mutability":"mutable","name":"serviceProvider","nameLocation":"4600:15:0","nodeType":"VariableDeclaration","scope":63,"src":"4592:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57,"name":"address","nodeType":"ElementaryTypeName","src":"4592:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60,"mutability":"mutable","name":"data","nameLocation":"4632:4:0","nodeType":"VariableDeclaration","scope":63,"src":"4617:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":59,"name":"bytes","nodeType":"ElementaryTypeName","src":"4617:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4591:46:0"},"returnParameters":{"id":62,"nodeType":"ParameterList","parameters":[],"src":"4646:0:0"},"scope":131,"src":"4550:97:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":64,"nodeType":"StructuredDocumentation","src":"4653:251:0","text":" @notice Service provider starts providing the service.\n @dev Emits a {ServiceStarted} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"functionSelector":"dedf6726","id":71,"implemented":false,"kind":"function","modifiers":[],"name":"startService","nameLocation":"4918:12:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"serviceProvider","nameLocation":"4939:15:0","nodeType":"VariableDeclaration","scope":71,"src":"4931:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"4931:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"data","nameLocation":"4971:4:0","nodeType":"VariableDeclaration","scope":71,"src":"4956:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":67,"name":"bytes","nodeType":"ElementaryTypeName","src":"4956:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4930:46:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"4985:0:0"},"scope":131,"src":"4909:77:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":72,"nodeType":"StructuredDocumentation","src":"4992:250:0","text":" @notice Service provider stops providing the service.\n @dev Emits a {ServiceStopped} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"functionSelector":"8180083b","id":79,"implemented":false,"kind":"function","modifiers":[],"name":"stopService","nameLocation":"5256:11:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"serviceProvider","nameLocation":"5276:15:0","nodeType":"VariableDeclaration","scope":79,"src":"5268:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"5268:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"5308:4:0","nodeType":"VariableDeclaration","scope":79,"src":"5293:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"5293:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5267:46:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"5322:0:0"},"scope":131,"src":"5247:76:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":80,"nodeType":"StructuredDocumentation","src":"5329:864:0","text":" @notice Collects payment earnt by the service provider.\n @dev The implementation of this function is expected to interact with {GraphPayments}\n to collect payment from the service payer, which is done via {IGraphPayments-collect}.\n Emits a {ServicePaymentCollected} event.\n NOTE: Data services that are vetted by the Graph Council might qualify for a portion of\n protocol issuance to cover for these payments. In this case, the funds are taken by\n interacting with the rewards manager contract instead of the {GraphPayments} contract.\n @param serviceProvider The address of the service provider.\n @param feeType The type of fee to collect as defined in {GraphPayments}.\n @param data Custom data, usage defined by the data service.\n @return The amount of tokens collected."},"functionSelector":"b15d2a2c","id":92,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"6207:7:0","nodeType":"FunctionDefinition","parameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"serviceProvider","nameLocation":"6232:15:0","nodeType":"VariableDeclaration","scope":92,"src":"6224:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81,"name":"address","nodeType":"ElementaryTypeName","src":"6224:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85,"mutability":"mutable","name":"feeType","nameLocation":"6285:7:0","nodeType":"VariableDeclaration","scope":92,"src":"6257:35:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":84,"nodeType":"UserDefinedTypeName","pathNode":{"id":83,"name":"IGraphPayments.PaymentTypes","nameLocations":["6257:14:0","6272:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"6257:27:0"},"referencedDeclaration":299,"src":"6257:27:0","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":87,"mutability":"mutable","name":"data","nameLocation":"6317:4:0","nodeType":"VariableDeclaration","scope":92,"src":"6302:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86,"name":"bytes","nodeType":"ElementaryTypeName","src":"6302:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6214:113:0"},"returnParameters":{"id":91,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":92,"src":"6346:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89,"name":"uint256","nodeType":"ElementaryTypeName","src":"6346:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6345:9:0"},"scope":131,"src":"6198:157:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":93,"nodeType":"StructuredDocumentation","src":"6361:367:0","text":" @notice Slash a service provider for misbehaviour.\n @dev To slash the service provider's provision the function should call\n {Staking-slash}.\n Emits a {ServiceProviderSlashed} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service."},"functionSelector":"cb8347fe","id":100,"implemented":false,"kind":"function","modifiers":[],"name":"slash","nameLocation":"6742:5:0","nodeType":"FunctionDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":95,"mutability":"mutable","name":"serviceProvider","nameLocation":"6756:15:0","nodeType":"VariableDeclaration","scope":100,"src":"6748:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94,"name":"address","nodeType":"ElementaryTypeName","src":"6748:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"data","nameLocation":"6788:4:0","nodeType":"VariableDeclaration","scope":100,"src":"6773:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":96,"name":"bytes","nodeType":"ElementaryTypeName","src":"6773:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6747:46:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[],"src":"6802:0:0"},"scope":131,"src":"6733:70:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":101,"nodeType":"StructuredDocumentation","src":"6809:163:0","text":" @notice External getter for the thawing period range\n @return Minimum thawing period allowed\n @return Maximum thawing period allowed"},"functionSelector":"71ce020a","id":108,"implemented":false,"kind":"function","modifiers":[],"name":"getThawingPeriodRange","nameLocation":"6986:21:0","nodeType":"FunctionDefinition","parameters":{"id":102,"nodeType":"ParameterList","parameters":[],"src":"7007:2:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108,"src":"7033:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":103,"name":"uint64","nodeType":"ElementaryTypeName","src":"7033:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108,"src":"7041:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":105,"name":"uint64","nodeType":"ElementaryTypeName","src":"7041:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7032:16:0"},"scope":131,"src":"6977:72:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":109,"nodeType":"StructuredDocumentation","src":"7055:157:0","text":" @notice External getter for the verifier cut range\n @return Minimum verifier cut allowed\n @return Maximum verifier cut allowed"},"functionSelector":"482468b7","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"getVerifierCutRange","nameLocation":"7226:19:0","nodeType":"FunctionDefinition","parameters":{"id":110,"nodeType":"ParameterList","parameters":[],"src":"7245:2:0"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"7271:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":111,"name":"uint32","nodeType":"ElementaryTypeName","src":"7271:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"7279:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":113,"name":"uint32","nodeType":"ElementaryTypeName","src":"7279:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"7270:16:0"},"scope":131,"src":"7217:70:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":117,"nodeType":"StructuredDocumentation","src":"7293:169:0","text":" @notice External getter for the provision tokens range\n @return Minimum provision tokens allowed\n @return Maximum provision tokens allowed"},"functionSelector":"819ba366","id":124,"implemented":false,"kind":"function","modifiers":[],"name":"getProvisionTokensRange","nameLocation":"7476:23:0","nodeType":"FunctionDefinition","parameters":{"id":118,"nodeType":"ParameterList","parameters":[],"src":"7499:2:0"},"returnParameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":124,"src":"7525:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":119,"name":"uint256","nodeType":"ElementaryTypeName","src":"7525:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":124,"src":"7534:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7534:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7524:18:0"},"scope":131,"src":"7467:76:0","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":125,"nodeType":"StructuredDocumentation","src":"7549:103:0","text":" @notice External getter for the delegation ratio\n @return The delegation ratio"},"functionSelector":"1ebb7c30","id":130,"implemented":false,"kind":"function","modifiers":[],"name":"getDelegationRatio","nameLocation":"7666:18:0","nodeType":"FunctionDefinition","parameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"7684:2:0"},"returnParameters":{"id":129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":130,"src":"7710:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":127,"name":"uint32","nodeType":"ElementaryTypeName","src":"7710:6:0","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"7709:8:0"},"scope":131,"src":"7657:61:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":132,"src":"1158:6562:0","usedErrors":[],"usedEvents":[11,16,23,30,40,47]}],"src":"45:7676:0"},"id":0},"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol","exportedSymbols":{"IDataService":[131],"IDataServiceFees":[145]},"id":146,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":133,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:1"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataService.sol","file":"./IDataService.sol","id":135,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":146,"sourceUnit":132,"src":"174:50:1","symbolAliases":[{"foreign":{"id":134,"name":"IDataService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"183:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":137,"name":"IDataService","nameLocations":["1334:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":131,"src":"1334:12:1"},"id":138,"nodeType":"InheritanceSpecifier","src":"1334:12:1"}],"canonicalName":"IDataServiceFees","contractDependencies":[],"contractKind":"interface","documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"226:1077:1","text":" @title Interface for the {DataServiceFees} contract.\n @author Edge & Node\n @notice Extension for the {IDataService} contract to handle payment collateralization\n using a Horizon provision.\n It's designed to be used with the Data Service framework:\n - When a service provider collects payment with {IDataService.collect} the data service should lock\n   stake to back the payment using {_lockStake}.\n - Every time there is a payment collection with {IDataService.collect}, the data service should\n   attempt to release any expired stake claims by calling {_releaseStake}.\n - Stake claims can also be manually released by calling {releaseStake} directly.\n @dev Note that this implementation uses the entire provisioned stake as collateral for the payment.\n It can be used to provide economic security for the payments collected as long as the provisioned\n stake is not being used for other purposes.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":145,"linearizedBaseContracts":[145,131],"name":"IDataServiceFees","nameLocation":"1314:16:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":139,"nodeType":"StructuredDocumentation","src":"1353:519:1","text":" @notice Releases expired stake claims for the caller.\n @dev This function is only meant to be called if the service provider has enough\n stake claims that releasing them all at once would exceed the block gas limit.\n @dev This function can be overriden and/or disabled.\n @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n @param numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed."},"functionSelector":"45f54485","id":144,"implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"1886:12:1","nodeType":"FunctionDefinition","parameters":{"id":142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":141,"mutability":"mutable","name":"numClaimsToRelease","nameLocation":"1907:18:1","nodeType":"VariableDeclaration","scope":144,"src":"1899:26:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":140,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1898:28:1"},"returnParameters":{"id":143,"nodeType":"ParameterList","parameters":[],"src":"1935:0:1"},"scope":145,"src":"1877:59:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":146,"src":"1304:634:1","usedErrors":[],"usedEvents":[11,16,23,30,40,47]}],"src":"45:1894:1"},"id":1},"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol","exportedSymbols":{"IAuthorizable":[279]},"id":280,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":147,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IAuthorizable","contractDependencies":[],"contractKind":"interface","documentation":{"id":148,"nodeType":"StructuredDocumentation","src":"212:341:2","text":" @title Interface for the {Authorizable} contract\n @author Edge & Node\n @notice Implements an authorization scheme that allows authorizers to\n authorize signers to sign on their behalf.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":279,"linearizedBaseContracts":[279],"name":"IAuthorizable","nameLocation":"564:13:2","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IAuthorizable.Authorization","documentation":{"id":149,"nodeType":"StructuredDocumentation","src":"584:373:2","text":" @notice Details for an authorizer-signer pair\n @dev Authorizations can be removed only after a thawing period\n @param authorizer The address of the authorizer - resource owner\n @param thawEndTimestamp The timestamp at which the thawing period ends (zero if not thawing)\n @param revoked Whether the signer authorization was revoked"},"id":156,"members":[{"constant":false,"id":151,"mutability":"mutable","name":"authorizer","nameLocation":"1001:10:2","nodeType":"VariableDeclaration","scope":156,"src":"993:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":150,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":153,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"1029:16:2","nodeType":"VariableDeclaration","scope":156,"src":"1021:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":155,"mutability":"mutable","name":"revoked","nameLocation":"1060:7:2","nodeType":"VariableDeclaration","scope":156,"src":"1055:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":154,"name":"bool","nodeType":"ElementaryTypeName","src":"1055:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Authorization","nameLocation":"969:13:2","nodeType":"StructDefinition","scope":279,"src":"962:112:2","visibility":"public"},{"anonymous":false,"documentation":{"id":157,"nodeType":"StructuredDocumentation","src":"1080:189:2","text":" @notice Emitted when a signer is authorized to sign for a authorizer\n @param authorizer The address of the authorizer\n @param signer The address of the signer"},"eventSelector":"6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e2828","id":163,"name":"SignerAuthorized","nameLocation":"1280:16:2","nodeType":"EventDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":159,"indexed":true,"mutability":"mutable","name":"authorizer","nameLocation":"1313:10:2","nodeType":"VariableDeclaration","scope":163,"src":"1297:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":158,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":161,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"1341:6:2","nodeType":"VariableDeclaration","scope":163,"src":"1325:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":160,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1296:52:2"},"src":"1274:75:2"},{"anonymous":false,"documentation":{"id":164,"nodeType":"StructuredDocumentation","src":"1355:285:2","text":" @notice Emitted when a signer is thawed to be de-authorized\n @param authorizer The address of the authorizer thawing the signer\n @param signer The address of the signer to thaw\n @param thawEndTimestamp The timestamp at which the thawing period ends"},"eventSelector":"d939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf","id":172,"name":"SignerThawing","nameLocation":"1651:13:2","nodeType":"EventDefinition","parameters":{"id":171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"indexed":true,"mutability":"mutable","name":"authorizer","nameLocation":"1681:10:2","nodeType":"VariableDeclaration","scope":172,"src":"1665:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"1665:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":168,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"1709:6:2","nodeType":"VariableDeclaration","scope":172,"src":"1693:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":167,"name":"address","nodeType":"ElementaryTypeName","src":"1693:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":170,"indexed":false,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"1725:16:2","nodeType":"VariableDeclaration","scope":172,"src":"1717:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1717:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1664:78:2"},"src":"1645:98:2"},{"anonymous":false,"documentation":{"id":173,"nodeType":"StructuredDocumentation","src":"1749:295:2","text":" @notice Emitted when the thawing of a signer is cancelled\n @param authorizer The address of the authorizer cancelling the thawing\n @param signer The address of the signer\n @param thawEndTimestamp The timestamp at which the thawing period was scheduled to end"},"eventSelector":"3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb","id":181,"name":"SignerThawCanceled","nameLocation":"2055:18:2","nodeType":"EventDefinition","parameters":{"id":180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":175,"indexed":true,"mutability":"mutable","name":"authorizer","nameLocation":"2090:10:2","nodeType":"VariableDeclaration","scope":181,"src":"2074:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":174,"name":"address","nodeType":"ElementaryTypeName","src":"2074:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":177,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"2118:6:2","nodeType":"VariableDeclaration","scope":181,"src":"2102:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":176,"name":"address","nodeType":"ElementaryTypeName","src":"2102:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":179,"indexed":false,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"2134:16:2","nodeType":"VariableDeclaration","scope":181,"src":"2126:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2073:78:2"},"src":"2049:103:2"},{"anonymous":false,"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2158:201:2","text":" @notice Emitted when a signer has been revoked after thawing\n @param authorizer The address of the authorizer revoking the signer\n @param signer The address of the signer"},"eventSelector":"2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe89422","id":188,"name":"SignerRevoked","nameLocation":"2370:13:2","nodeType":"EventDefinition","parameters":{"id":187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":184,"indexed":true,"mutability":"mutable","name":"authorizer","nameLocation":"2400:10:2","nodeType":"VariableDeclaration","scope":188,"src":"2384:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"2384:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"2428:6:2","nodeType":"VariableDeclaration","scope":188,"src":"2412:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":185,"name":"address","nodeType":"ElementaryTypeName","src":"2412:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2383:52:2"},"src":"2364:72:2"},{"documentation":{"id":189,"nodeType":"StructuredDocumentation","src":"2442:262:2","text":" @notice Thrown when attempting to authorize a signer that is already authorized\n @param authorizer The address of the authorizer\n @param signer The address of the signer\n @param revoked The revoked status of the authorization"},"errorSelector":"0c83a00f","id":197,"name":"AuthorizableSignerAlreadyAuthorized","nameLocation":"2715:35:2","nodeType":"ErrorDefinition","parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":191,"mutability":"mutable","name":"authorizer","nameLocation":"2759:10:2","nodeType":"VariableDeclaration","scope":197,"src":"2751:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":193,"mutability":"mutable","name":"signer","nameLocation":"2779:6:2","nodeType":"VariableDeclaration","scope":197,"src":"2771:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":192,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":195,"mutability":"mutable","name":"revoked","nameLocation":"2792:7:2","nodeType":"VariableDeclaration","scope":197,"src":"2787:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":194,"name":"bool","nodeType":"ElementaryTypeName","src":"2787:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2750:50:2"},"src":"2709:92:2"},{"documentation":{"id":198,"nodeType":"StructuredDocumentation","src":"2807:192:2","text":" @notice Thrown when the signer proof deadline is invalid\n @param proofDeadline The deadline for the proof provided\n @param currentTimestamp The current timestamp"},"errorSelector":"d7705a01","id":204,"name":"AuthorizableInvalidSignerProofDeadline","nameLocation":"3010:38:2","nodeType":"ErrorDefinition","parameters":{"id":203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":200,"mutability":"mutable","name":"proofDeadline","nameLocation":"3057:13:2","nodeType":"VariableDeclaration","scope":204,"src":"3049:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":199,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":202,"mutability":"mutable","name":"currentTimestamp","nameLocation":"3080:16:2","nodeType":"VariableDeclaration","scope":204,"src":"3072:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3072:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3048:49:2"},"src":"3004:94:2"},{"documentation":{"id":205,"nodeType":"StructuredDocumentation","src":"3104:66:2","text":" @notice Thrown when the signer proof is invalid"},"errorSelector":"e03f6998","id":207,"name":"AuthorizableInvalidSignerProof","nameLocation":"3181:30:2","nodeType":"ErrorDefinition","parameters":{"id":206,"nodeType":"ParameterList","parameters":[],"src":"3211:2:2"},"src":"3175:39:2"},{"documentation":{"id":208,"nodeType":"StructuredDocumentation","src":"3220:187:2","text":" @notice Thrown when the signer is not authorized by the authorizer\n @param authorizer The address of the authorizer\n @param signer The address of the signer"},"errorSelector":"1e58ab1f","id":214,"name":"AuthorizableSignerNotAuthorized","nameLocation":"3418:31:2","nodeType":"ErrorDefinition","parameters":{"id":213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":210,"mutability":"mutable","name":"authorizer","nameLocation":"3458:10:2","nodeType":"VariableDeclaration","scope":214,"src":"3450:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":209,"name":"address","nodeType":"ElementaryTypeName","src":"3450:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":212,"mutability":"mutable","name":"signer","nameLocation":"3478:6:2","nodeType":"VariableDeclaration","scope":214,"src":"3470:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":211,"name":"address","nodeType":"ElementaryTypeName","src":"3470:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3449:36:2"},"src":"3412:74:2"},{"documentation":{"id":215,"nodeType":"StructuredDocumentation","src":"3492:111:2","text":" @notice Thrown when the signer is not thawing\n @param signer The address of the signer"},"errorSelector":"cd3cd55d","id":219,"name":"AuthorizableSignerNotThawing","nameLocation":"3614:28:2","nodeType":"ErrorDefinition","parameters":{"id":218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":217,"mutability":"mutable","name":"signer","nameLocation":"3651:6:2","nodeType":"VariableDeclaration","scope":219,"src":"3643:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":216,"name":"address","nodeType":"ElementaryTypeName","src":"3643:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3642:16:2"},"src":"3608:51:2"},{"documentation":{"id":220,"nodeType":"StructuredDocumentation","src":"3665:197:2","text":" @notice Thrown when the signer is still thawing\n @param currentTimestamp The current timestamp\n @param thawEndTimestamp The timestamp at which the thawing period ends"},"errorSelector":"bd76307f","id":226,"name":"AuthorizableSignerStillThawing","nameLocation":"3873:30:2","nodeType":"ErrorDefinition","parameters":{"id":225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"mutability":"mutable","name":"currentTimestamp","nameLocation":"3912:16:2","nodeType":"VariableDeclaration","scope":226,"src":"3904:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3904:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":224,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"3938:16:2","nodeType":"VariableDeclaration","scope":226,"src":"3930:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":223,"name":"uint256","nodeType":"ElementaryTypeName","src":"3930:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3903:52:2"},"src":"3867:89:2"},{"documentation":{"id":227,"nodeType":"StructuredDocumentation","src":"3962:124:2","text":" @notice The period after which a signer can be revoked after thawing\n @return The period in seconds"},"functionSelector":"9b952881","id":232,"implemented":false,"kind":"function","modifiers":[],"name":"REVOKE_AUTHORIZATION_THAWING_PERIOD","nameLocation":"4100:35:2","nodeType":"FunctionDefinition","parameters":{"id":228,"nodeType":"ParameterList","parameters":[],"src":"4135:2:2"},"returnParameters":{"id":231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":232,"src":"4161:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":229,"name":"uint256","nodeType":"ElementaryTypeName","src":"4161:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4160:9:2"},"scope":279,"src":"4091:79:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":233,"nodeType":"StructuredDocumentation","src":"4176:662:2","text":" @notice Authorize a signer to sign on behalf of the authorizer\n @dev Requirements:\n - `signer` must not be already authorized\n - `proofDeadline` must be greater than the current timestamp\n - `proof` must be a valid signature from the signer being authorized\n Emits a {SignerAuthorized} event\n @param signer The address of the signer\n @param proofDeadline The deadline for the proof provided by the signer\n @param proof The proof provided by the signer to be authorized by the authorizer\n consists of (chain id, verifying contract address, domain, proof deadline, authorizer address)"},"functionSelector":"fee9f01f","id":242,"implemented":false,"kind":"function","modifiers":[],"name":"authorizeSigner","nameLocation":"4852:15:2","nodeType":"FunctionDefinition","parameters":{"id":240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":235,"mutability":"mutable","name":"signer","nameLocation":"4876:6:2","nodeType":"VariableDeclaration","scope":242,"src":"4868:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"4868:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":237,"mutability":"mutable","name":"proofDeadline","nameLocation":"4892:13:2","nodeType":"VariableDeclaration","scope":242,"src":"4884:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"4884:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":239,"mutability":"mutable","name":"proof","nameLocation":"4922:5:2","nodeType":"VariableDeclaration","scope":242,"src":"4907:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":238,"name":"bytes","nodeType":"ElementaryTypeName","src":"4907:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4867:61:2"},"returnParameters":{"id":241,"nodeType":"ParameterList","parameters":[],"src":"4937:0:2"},"scope":279,"src":"4843:95:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":243,"nodeType":"StructuredDocumentation","src":"4944:566:2","text":" @notice Starts thawing a signer to be de-authorized\n @dev Thawing a signer signals that signatures from that signer will soon be deemed invalid.\n Once a signer is thawed, they should be viewed as revoked regardless of their revocation status.\n If a signer is already thawing and this function is called, the thawing period is reset.\n Requirements:\n - `signer` must be authorized by the authorizer calling this function\n Emits a {SignerThawing} event\n @param signer The address of the signer to thaw"},"functionSelector":"1354f019","id":248,"implemented":false,"kind":"function","modifiers":[],"name":"thawSigner","nameLocation":"5524:10:2","nodeType":"FunctionDefinition","parameters":{"id":246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":245,"mutability":"mutable","name":"signer","nameLocation":"5543:6:2","nodeType":"VariableDeclaration","scope":248,"src":"5535:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":244,"name":"address","nodeType":"ElementaryTypeName","src":"5535:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5534:16:2"},"returnParameters":{"id":247,"nodeType":"ParameterList","parameters":[],"src":"5559:0:2"},"scope":279,"src":"5515:45:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":249,"nodeType":"StructuredDocumentation","src":"5566:262:2","text":" @notice Stops thawing a signer.\n @dev Requirements:\n - `signer` must be thawing and authorized by the function caller\n Emits a {SignerThawCanceled} event\n @param signer The address of the signer to cancel thawing"},"functionSelector":"015cdd80","id":254,"implemented":false,"kind":"function","modifiers":[],"name":"cancelThawSigner","nameLocation":"5842:16:2","nodeType":"FunctionDefinition","parameters":{"id":252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":251,"mutability":"mutable","name":"signer","nameLocation":"5867:6:2","nodeType":"VariableDeclaration","scope":254,"src":"5859:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250,"name":"address","nodeType":"ElementaryTypeName","src":"5859:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5858:16:2"},"returnParameters":{"id":253,"nodeType":"ParameterList","parameters":[],"src":"5883:0:2"},"scope":279,"src":"5833:51:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":255,"nodeType":"StructuredDocumentation","src":"5890:242:2","text":" @notice Revokes a signer if thawed.\n @dev Requirements:\n - `signer` must be thawed and authorized by the function caller\n Emits a {SignerRevoked} event\n @param signer The address of the signer"},"functionSelector":"39aa7416","id":260,"implemented":false,"kind":"function","modifiers":[],"name":"revokeAuthorizedSigner","nameLocation":"6146:22:2","nodeType":"FunctionDefinition","parameters":{"id":258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":257,"mutability":"mutable","name":"signer","nameLocation":"6177:6:2","nodeType":"VariableDeclaration","scope":260,"src":"6169:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":256,"name":"address","nodeType":"ElementaryTypeName","src":"6169:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6168:16:2"},"returnParameters":{"id":259,"nodeType":"ParameterList","parameters":[],"src":"6193:0:2"},"scope":279,"src":"6137:57:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":261,"nodeType":"StructuredDocumentation","src":"6200:251:2","text":" @notice Returns the timestamp at which the thawing period ends for a signer.\n Returns 0 if the signer is not thawing.\n @param signer The address of the signer\n @return The timestamp at which the thawing period ends"},"functionSelector":"bea5d2ab","id":268,"implemented":false,"kind":"function","modifiers":[],"name":"getThawEnd","nameLocation":"6465:10:2","nodeType":"FunctionDefinition","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"signer","nameLocation":"6484:6:2","nodeType":"VariableDeclaration","scope":268,"src":"6476:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"6476:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6475:16:2"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":268,"src":"6515:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":265,"name":"uint256","nodeType":"ElementaryTypeName","src":"6515:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6514:9:2"},"scope":279,"src":"6456:68:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"6530:270:2","text":" @notice Returns true if the signer is authorized by the authorizer\n @param authorizer The address of the authorizer\n @param signer The address of the signer\n @return true if the signer is authorized by the authorizer, false otherwise"},"functionSelector":"65e4ad9e","id":278,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"6814:12:2","nodeType":"FunctionDefinition","parameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"authorizer","nameLocation":"6835:10:2","nodeType":"VariableDeclaration","scope":278,"src":"6827:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":270,"name":"address","nodeType":"ElementaryTypeName","src":"6827:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":273,"mutability":"mutable","name":"signer","nameLocation":"6855:6:2","nodeType":"VariableDeclaration","scope":278,"src":"6847:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":272,"name":"address","nodeType":"ElementaryTypeName","src":"6847:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6826:36:2"},"returnParameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":278,"src":"6886:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":275,"name":"bool","nodeType":"ElementaryTypeName","src":"6886:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6885:6:2"},"scope":279,"src":"6805:87:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":280,"src":"554:6340:2","usedErrors":[197,204,207,214,219,226],"usedEvents":[163,172,181,188]}],"src":"45:6850:2"},"id":2},"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol","exportedSymbols":{"IContractApprover":[291]},"id":292,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":281,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IContractApprover","contractDependencies":[],"contractKind":"interface","documentation":{"id":282,"nodeType":"StructuredDocumentation","src":"71:972:3","text":" @title Interface for contracts that can act as authorized agreement approvers\n @author Edge & Node\n @notice Enables contracts to authorize RCA agreements and updates on-chain via\n {RecurringCollector.acceptUnsigned} and {RecurringCollector.updateUnsigned},\n replacing ECDSA signatures with a callback.\n Uses the magic-value pattern: return the function selector on success.\n The same callback is used for both accept (RCA hash) and update (RCAU hash).\n Hash namespaces do not collide because RCA and RCAU use different EIP712 type hashes.\n No per-payer authorization step is needed — the contract's code is the authorization.\n The trust chain is: governance grants operator role → operator registers\n (validates and pre-funds) → isAuthorizedAgreement confirms → RC accepts/updates.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":291,"linearizedBaseContracts":[291],"name":"IContractApprover","nameLocation":"1054:17:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":283,"nodeType":"StructuredDocumentation","src":"1078:413:3","text":" @notice Confirms this contract authorized the given agreement or update\n @dev Called by {RecurringCollector.acceptUnsigned} with an RCA hash or by\n {RecurringCollector.updateUnsigned} with an RCAU hash to verify authorization.\n @param agreementHash The EIP712 hash of the RCA or RCAU struct\n @return magic `IContractApprover.isAuthorizedAgreement.selector` if authorized"},"functionSelector":"8d202ecf","id":290,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedAgreement","nameLocation":"1505:21:3","nodeType":"FunctionDefinition","parameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":285,"mutability":"mutable","name":"agreementHash","nameLocation":"1535:13:3","nodeType":"VariableDeclaration","scope":290,"src":"1527:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1527:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1526:23:3"},"returnParameters":{"id":289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":290,"src":"1573:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":287,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1573:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1572:8:3"},"scope":291,"src":"1496:85:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":292,"src":"1044:539:3","usedErrors":[],"usedEvents":[]}],"src":"45:1539:3"},"id":3},"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","exportedSymbols":{"IGraphPayments":[361]},"id":362,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":293,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IGraphPayments","contractDependencies":[],"contractKind":"interface","documentation":{"id":294,"nodeType":"StructuredDocumentation","src":"71:427:4","text":" @title Interface for the {GraphPayments} contract\n @author Edge & Node\n @notice This contract is part of the Graph Horizon payments protocol. It's designed\n to pull funds (GRT) from the {PaymentsEscrow} and distribute them according to a\n set of pre established rules.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":361,"linearizedBaseContracts":[361],"name":"IGraphPayments","nameLocation":"509:14:4","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IGraphPayments.PaymentTypes","documentation":{"id":295,"nodeType":"StructuredDocumentation","src":"530:100:4","text":" @notice Types of payments that are supported by the payments protocol\n @dev"},"id":299,"members":[{"id":296,"name":"QueryFee","nameLocation":"663:8:4","nodeType":"EnumValue","src":"663:8:4"},{"id":297,"name":"IndexingFee","nameLocation":"681:11:4","nodeType":"EnumValue","src":"681:11:4"},{"id":298,"name":"IndexingRewards","nameLocation":"702:15:4","nodeType":"EnumValue","src":"702:15:4"}],"name":"PaymentTypes","nameLocation":"640:12:4","nodeType":"EnumDefinition","src":"635:88:4"},{"anonymous":false,"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"729:715:4","text":" @notice Emitted when a payment is collected\n @param paymentType The type of payment as defined in {IGraphPayments}\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param dataService The address of the data service\n @param tokens The total amount of tokens being collected\n @param tokensProtocol Amount of tokens charged as protocol tax\n @param tokensDataService Amount of tokens for the data service\n @param tokensDelegationPool Amount of tokens for delegators\n @param tokensReceiver Amount of tokens for the receiver\n @param receiverDestination The address where the receiver's payment cut is sent."},"eventSelector":"b1ac8b16683562f4b1b5ecbe3321151b400058de5cdd25ac44d5bfacb106765f","id":323,"name":"GraphPaymentCollected","nameLocation":"1455:21:4","nodeType":"EventDefinition","parameters":{"id":322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"indexed":true,"mutability":"mutable","name":"paymentType","nameLocation":"1507:11:4","nodeType":"VariableDeclaration","scope":323,"src":"1486:32:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":302,"nodeType":"UserDefinedTypeName","pathNode":{"id":301,"name":"PaymentTypes","nameLocations":["1486:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"1486:12:4"},"referencedDeclaration":299,"src":"1486:12:4","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":305,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"1544:5:4","nodeType":"VariableDeclaration","scope":323,"src":"1528:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":304,"name":"address","nodeType":"ElementaryTypeName","src":"1528:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":307,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"1567:8:4","nodeType":"VariableDeclaration","scope":323,"src":"1559:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":306,"name":"address","nodeType":"ElementaryTypeName","src":"1559:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":309,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"1601:11:4","nodeType":"VariableDeclaration","scope":323,"src":"1585:27:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":308,"name":"address","nodeType":"ElementaryTypeName","src":"1585:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":311,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"1630:6:4","nodeType":"VariableDeclaration","scope":323,"src":"1622:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1622:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":313,"indexed":false,"mutability":"mutable","name":"tokensProtocol","nameLocation":"1654:14:4","nodeType":"VariableDeclaration","scope":323,"src":"1646:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":315,"indexed":false,"mutability":"mutable","name":"tokensDataService","nameLocation":"1686:17:4","nodeType":"VariableDeclaration","scope":323,"src":"1678:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":314,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":317,"indexed":false,"mutability":"mutable","name":"tokensDelegationPool","nameLocation":"1721:20:4","nodeType":"VariableDeclaration","scope":323,"src":"1713:28:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":319,"indexed":false,"mutability":"mutable","name":"tokensReceiver","nameLocation":"1759:14:4","nodeType":"VariableDeclaration","scope":323,"src":"1751:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1751:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":321,"indexed":false,"mutability":"mutable","name":"receiverDestination","nameLocation":"1791:19:4","nodeType":"VariableDeclaration","scope":323,"src":"1783:27:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":320,"name":"address","nodeType":"ElementaryTypeName","src":"1783:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1476:340:4"},"src":"1449:368:4"},{"documentation":{"id":324,"nodeType":"StructuredDocumentation","src":"1823:132:4","text":" @notice Thrown when the protocol payment cut is invalid\n @param protocolPaymentCut The protocol payment cut"},"errorSelector":"d3097bcb","id":328,"name":"GraphPaymentsInvalidProtocolPaymentCut","nameLocation":"1966:38:4","nodeType":"ErrorDefinition","parameters":{"id":327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":326,"mutability":"mutable","name":"protocolPaymentCut","nameLocation":"2013:18:4","nodeType":"VariableDeclaration","scope":328,"src":"2005:26:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":325,"name":"uint256","nodeType":"ElementaryTypeName","src":"2005:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2004:28:4"},"src":"1960:73:4"},{"documentation":{"id":329,"nodeType":"StructuredDocumentation","src":"2039:113:4","text":" @notice Thrown when trying to use a cut that is not expressed in PPM\n @param cut The cut"},"errorSelector":"e6dd8b94","id":333,"name":"GraphPaymentsInvalidCut","nameLocation":"2163:23:4","nodeType":"ErrorDefinition","parameters":{"id":332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":331,"mutability":"mutable","name":"cut","nameLocation":"2195:3:4","nodeType":"VariableDeclaration","scope":333,"src":"2187:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":330,"name":"uint256","nodeType":"ElementaryTypeName","src":"2187:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2186:13:4"},"src":"2157:43:4"},{"documentation":{"id":334,"nodeType":"StructuredDocumentation","src":"2206:106:4","text":" @notice Returns the protocol payment cut\n @return The protocol payment cut in PPM"},"functionSelector":"1d526e50","id":339,"implemented":false,"kind":"function","modifiers":[],"name":"PROTOCOL_PAYMENT_CUT","nameLocation":"2326:20:4","nodeType":"FunctionDefinition","parameters":{"id":335,"nodeType":"ParameterList","parameters":[],"src":"2346:2:4"},"returnParameters":{"id":338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":339,"src":"2372:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":336,"name":"uint256","nodeType":"ElementaryTypeName","src":"2372:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2371:9:4"},"scope":361,"src":"2317:64:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":340,"nodeType":"StructuredDocumentation","src":"2387:50:4","text":" @notice Initialize the contract"},"functionSelector":"8129fc1c","id":343,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2451:10:4","nodeType":"FunctionDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[],"src":"2461:2:4"},"returnParameters":{"id":342,"nodeType":"ParameterList","parameters":[],"src":"2472:0:4"},"scope":361,"src":"2442:31:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"2479:848:4","text":" @notice Collects funds from a payer.\n It will pay cuts to all relevant parties and forward the rest to the receiver destination address. If the\n destination address is zero the funds are automatically staked to the receiver. Note that the receiver\n destination address can be set to the receiver address to collect funds on the receiver without re-staking.\n Note that the collected amount can be zero.\n @param paymentType The type of payment as defined in {IGraphPayments}\n @param receiver The address of the receiver\n @param tokens The amount of tokens being collected.\n @param dataService The address of the data service\n @param dataServiceCut The data service cut in PPM\n @param receiverDestination The address where the receiver's payment cut is sent."},"functionSelector":"81cd11a0","id":360,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"3341:7:4","nodeType":"FunctionDefinition","parameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":347,"mutability":"mutable","name":"paymentType","nameLocation":"3371:11:4","nodeType":"VariableDeclaration","scope":360,"src":"3358:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":346,"nodeType":"UserDefinedTypeName","pathNode":{"id":345,"name":"PaymentTypes","nameLocations":["3358:12:4"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"3358:12:4"},"referencedDeclaration":299,"src":"3358:12:4","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":349,"mutability":"mutable","name":"receiver","nameLocation":"3400:8:4","nodeType":"VariableDeclaration","scope":360,"src":"3392:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":348,"name":"address","nodeType":"ElementaryTypeName","src":"3392:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"tokens","nameLocation":"3426:6:4","nodeType":"VariableDeclaration","scope":360,"src":"3418:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":350,"name":"uint256","nodeType":"ElementaryTypeName","src":"3418:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"dataService","nameLocation":"3450:11:4","nodeType":"VariableDeclaration","scope":360,"src":"3442:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":352,"name":"address","nodeType":"ElementaryTypeName","src":"3442:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":355,"mutability":"mutable","name":"dataServiceCut","nameLocation":"3479:14:4","nodeType":"VariableDeclaration","scope":360,"src":"3471:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"3471:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":357,"mutability":"mutable","name":"receiverDestination","nameLocation":"3511:19:4","nodeType":"VariableDeclaration","scope":360,"src":"3503:27:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":356,"name":"address","nodeType":"ElementaryTypeName","src":"3503:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3348:188:4"},"returnParameters":{"id":359,"nodeType":"ParameterList","parameters":[],"src":"3545:0:4"},"scope":361,"src":"3332:214:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":362,"src":"499:3049:4","usedErrors":[328,333],"usedEvents":[323]}],"src":"45:3504:4"},"id":4},"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol","exportedSymbols":{"IGraphPayments":[361],"IPaymentsCollector":[394]},"id":395,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":363,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"46:24:5"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","file":"./IGraphPayments.sol","id":365,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":395,"sourceUnit":362,"src":"72:54:5","symbolAliases":[{"foreign":{"id":364,"name":"IGraphPayments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"81:14:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymentsCollector","contractDependencies":[],"contractKind":"interface","documentation":{"id":366,"nodeType":"StructuredDocumentation","src":"128:654:5","text":" @title Interface for a payments collector contract as defined by Graph Horizon payments protocol\n @author Edge & Node\n @notice Contracts implementing this interface can be used with the payments protocol. First, a payer must\n approve the collector to collect payments on their behalf. Only then can payment collection be initiated\n using the collector contract.\n @dev It's important to note that it's the collector contract's responsibility to validate the payment\n request is legitimate.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":394,"linearizedBaseContracts":[394],"name":"IPaymentsCollector","nameLocation":"793:18:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":367,"nodeType":"StructuredDocumentation","src":"818:487:5","text":" @notice Emitted when a payment is collected\n @param paymentType The payment type collected as defined by {IGraphPayments}\n @param collectionId The id for the collection. Can be used at the discretion of the collector to group multiple payments.\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param dataService The address of the data service\n @param tokens The amount of tokens being collected"},"eventSelector":"481a17595c709e8f745444fb9ffc8f0b5e98458de94463971947f548e12bbdb4","id":382,"name":"PaymentCollected","nameLocation":"1316:16:5","nodeType":"EventDefinition","parameters":{"id":381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":370,"indexed":false,"mutability":"mutable","name":"paymentType","nameLocation":"1370:11:5","nodeType":"VariableDeclaration","scope":382,"src":"1342:39:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":369,"nodeType":"UserDefinedTypeName","pathNode":{"id":368,"name":"IGraphPayments.PaymentTypes","nameLocations":["1342:14:5","1357:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"1342:27:5"},"referencedDeclaration":299,"src":"1342:27:5","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":372,"indexed":true,"mutability":"mutable","name":"collectionId","nameLocation":"1407:12:5","nodeType":"VariableDeclaration","scope":382,"src":"1391:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":374,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"1445:5:5","nodeType":"VariableDeclaration","scope":382,"src":"1429:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"1429:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":376,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"1468:8:5","nodeType":"VariableDeclaration","scope":382,"src":"1460:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"1460:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":378,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"1502:11:5","nodeType":"VariableDeclaration","scope":382,"src":"1486:27:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":377,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":380,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"1531:6:5","nodeType":"VariableDeclaration","scope":382,"src":"1523:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":379,"name":"uint256","nodeType":"ElementaryTypeName","src":"1523:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1332:211:5"},"src":"1310:234:5"},{"documentation":{"id":383,"nodeType":"StructuredDocumentation","src":"1550:613:5","text":" @notice Initiate a payment collection through the payments protocol\n @dev This function should require the caller to present some form of evidence of the payer's debt to\n the receiver. The collector should validate this evidence and, if valid, collect the payment.\n Emits a {PaymentCollected} event\n @param paymentType The payment type to collect, as defined by {IGraphPayments}\n @param data Additional data required for the payment collection. Will vary depending on the collector\n implementation.\n @return The amount of tokens collected"},"functionSelector":"7f07d283","id":393,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"2177:7:5","nodeType":"FunctionDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":386,"mutability":"mutable","name":"paymentType","nameLocation":"2213:11:5","nodeType":"VariableDeclaration","scope":393,"src":"2185:39:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":385,"nodeType":"UserDefinedTypeName","pathNode":{"id":384,"name":"IGraphPayments.PaymentTypes","nameLocations":["2185:14:5","2200:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"2185:27:5"},"referencedDeclaration":299,"src":"2185:27:5","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":388,"mutability":"mutable","name":"data","nameLocation":"2239:4:5","nodeType":"VariableDeclaration","scope":393,"src":"2226:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":387,"name":"bytes","nodeType":"ElementaryTypeName","src":"2226:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2184:60:5"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":393,"src":"2263:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":390,"name":"uint256","nodeType":"ElementaryTypeName","src":"2263:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2262:9:5"},"scope":394,"src":"2168:104:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":395,"src":"783:1491:5","usedErrors":[],"usedEvents":[382]}],"src":"46:2229:5"},"id":5},"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol","exportedSymbols":{"IGraphPayments":[361],"IPaymentsEscrow":[606]},"id":607,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":396,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:6"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","file":"./IGraphPayments.sol","id":398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":607,"sourceUnit":362,"src":"71:54:6","symbolAliases":[{"foreign":{"id":397,"name":"IGraphPayments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"80:14:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IPaymentsEscrow","contractDependencies":[],"contractKind":"interface","documentation":{"id":399,"nodeType":"StructuredDocumentation","src":"127:794:6","text":" @title Interface for the {PaymentsEscrow} contract\n @author Edge & Node\n @notice This contract is part of the Graph Horizon payments protocol. It holds the funds (GRT)\n for payments made through the payments protocol for services provided\n via a Graph Horizon data service.\n Payers deposit funds on the escrow, signalling their ability to pay for a service, and only\n being able to retrieve them after a thawing period. Receivers collect funds from the escrow,\n provided the payer has authorized them. The payer authorization is delegated to a payment\n collector contract which implements the {IPaymentsCollector} interface.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":606,"linearizedBaseContracts":[606],"name":"IPaymentsEscrow","nameLocation":"932:15:6","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IPaymentsEscrow.EscrowAccount","documentation":{"id":400,"nodeType":"StructuredDocumentation","src":"954:331:6","text":" @notice Escrow account for a payer-collector-receiver tuple\n @param balance The total token balance for the payer-collector-receiver tuple\n @param tokensThawing The amount of tokens currently being thawed\n @param thawEndTimestamp The timestamp at which thawing period ends (zero if not thawing)"},"id":407,"members":[{"constant":false,"id":402,"mutability":"mutable","name":"balance","nameLocation":"1329:7:6","nodeType":"VariableDeclaration","scope":407,"src":"1321:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":401,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":404,"mutability":"mutable","name":"tokensThawing","nameLocation":"1354:13:6","nodeType":"VariableDeclaration","scope":407,"src":"1346:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":403,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":406,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"1385:16:6","nodeType":"VariableDeclaration","scope":407,"src":"1377:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":405,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"EscrowAccount","nameLocation":"1297:13:6","nodeType":"StructDefinition","scope":606,"src":"1290:118:6","visibility":"public"},{"anonymous":false,"documentation":{"id":408,"nodeType":"StructuredDocumentation","src":"1414:316:6","text":" @notice Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens deposited"},"eventSelector":"7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a96","id":418,"name":"Deposit","nameLocation":"1741:7:6","nodeType":"EventDefinition","parameters":{"id":417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"1765:5:6","nodeType":"VariableDeclaration","scope":418,"src":"1749:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"1749:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":412,"indexed":true,"mutability":"mutable","name":"collector","nameLocation":"1788:9:6","nodeType":"VariableDeclaration","scope":418,"src":"1772:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":411,"name":"address","nodeType":"ElementaryTypeName","src":"1772:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":414,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"1815:8:6","nodeType":"VariableDeclaration","scope":418,"src":"1799:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"1799:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":416,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"1833:6:6","nodeType":"VariableDeclaration","scope":418,"src":"1825:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:92:6"},"src":"1735:106:6"},{"anonymous":false,"documentation":{"id":419,"nodeType":"StructuredDocumentation","src":"1847:378:6","text":" @notice Emitted when a payer cancels an escrow thawing\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokensThawing The amount of tokens that were being thawed\n @param thawEndTimestamp The timestamp at which the thawing period was ending"},"eventSelector":"6c4ed34e7347a8682024ee40d393e45f4075c46c593aaaed3cc3e49dd6933535","id":431,"name":"CancelThaw","nameLocation":"2236:10:6","nodeType":"EventDefinition","parameters":{"id":430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":421,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"2272:5:6","nodeType":"VariableDeclaration","scope":431,"src":"2256:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":420,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":423,"indexed":true,"mutability":"mutable","name":"collector","nameLocation":"2303:9:6","nodeType":"VariableDeclaration","scope":431,"src":"2287:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":422,"name":"address","nodeType":"ElementaryTypeName","src":"2287:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":425,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"2338:8:6","nodeType":"VariableDeclaration","scope":431,"src":"2322:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"2322:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":427,"indexed":false,"mutability":"mutable","name":"tokensThawing","nameLocation":"2364:13:6","nodeType":"VariableDeclaration","scope":431,"src":"2356:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":426,"name":"uint256","nodeType":"ElementaryTypeName","src":"2356:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":429,"indexed":false,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"2395:16:6","nodeType":"VariableDeclaration","scope":431,"src":"2387:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":428,"name":"uint256","nodeType":"ElementaryTypeName","src":"2387:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2246:171:6"},"src":"2230:188:6"},{"anonymous":false,"documentation":{"id":432,"nodeType":"StructuredDocumentation","src":"2424:394:6","text":" @notice Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens being thawed\n @param thawEndTimestamp The timestamp at which the thawing period ends"},"eventSelector":"ba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc","id":444,"name":"Thaw","nameLocation":"2829:4:6","nodeType":"EventDefinition","parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"2859:5:6","nodeType":"VariableDeclaration","scope":444,"src":"2843:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"2843:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":436,"indexed":true,"mutability":"mutable","name":"collector","nameLocation":"2890:9:6","nodeType":"VariableDeclaration","scope":444,"src":"2874:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":435,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":438,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"2925:8:6","nodeType":"VariableDeclaration","scope":444,"src":"2909:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":437,"name":"address","nodeType":"ElementaryTypeName","src":"2909:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":440,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"2951:6:6","nodeType":"VariableDeclaration","scope":444,"src":"2943:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2943:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":442,"indexed":false,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"2975:16:6","nodeType":"VariableDeclaration","scope":444,"src":"2967:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":441,"name":"uint256","nodeType":"ElementaryTypeName","src":"2967:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2833:164:6"},"src":"2823:175:6"},{"anonymous":false,"documentation":{"id":445,"nodeType":"StructuredDocumentation","src":"3004:317:6","text":" @notice Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens withdrawn"},"eventSelector":"3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7","id":455,"name":"Withdraw","nameLocation":"3332:8:6","nodeType":"EventDefinition","parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":447,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"3357:5:6","nodeType":"VariableDeclaration","scope":455,"src":"3341:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":446,"name":"address","nodeType":"ElementaryTypeName","src":"3341:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":449,"indexed":true,"mutability":"mutable","name":"collector","nameLocation":"3380:9:6","nodeType":"VariableDeclaration","scope":455,"src":"3364:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":448,"name":"address","nodeType":"ElementaryTypeName","src":"3364:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":451,"indexed":true,"mutability":"mutable","name":"receiver","nameLocation":"3407:8:6","nodeType":"VariableDeclaration","scope":455,"src":"3391:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":450,"name":"address","nodeType":"ElementaryTypeName","src":"3391:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":453,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"3425:6:6","nodeType":"VariableDeclaration","scope":455,"src":"3417:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":452,"name":"uint256","nodeType":"ElementaryTypeName","src":"3417:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3340:92:6"},"src":"3326:107:6"},{"anonymous":false,"documentation":{"id":456,"nodeType":"StructuredDocumentation","src":"3439:518:6","text":" @notice Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\n @param paymentType The type of payment being collected as defined in the {IGraphPayments} interface\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens collected\n @param receiverDestination The address where the receiver's payment should be sent."},"eventSelector":"399b99b484be516eace7ececa486139581a25b0d2d12dac8bfa0948d07a8c913","id":471,"name":"EscrowCollected","nameLocation":"3968:15:6","nodeType":"EventDefinition","parameters":{"id":470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":459,"indexed":true,"mutability":"mutable","name":"paymentType","nameLocation":"4029:11:6","nodeType":"VariableDeclaration","scope":471,"src":"3993:47:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":458,"nodeType":"UserDefinedTypeName","pathNode":{"id":457,"name":"IGraphPayments.PaymentTypes","nameLocations":["3993:14:6","4008:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"3993:27:6"},"referencedDeclaration":299,"src":"3993:27:6","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":461,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"4066:5:6","nodeType":"VariableDeclaration","scope":471,"src":"4050:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":460,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":463,"indexed":true,"mutability":"mutable","name":"collector","nameLocation":"4097:9:6","nodeType":"VariableDeclaration","scope":471,"src":"4081:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":462,"name":"address","nodeType":"ElementaryTypeName","src":"4081:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":465,"indexed":false,"mutability":"mutable","name":"receiver","nameLocation":"4124:8:6","nodeType":"VariableDeclaration","scope":471,"src":"4116:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":464,"name":"address","nodeType":"ElementaryTypeName","src":"4116:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":467,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"4150:6:6","nodeType":"VariableDeclaration","scope":471,"src":"4142:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":466,"name":"uint256","nodeType":"ElementaryTypeName","src":"4142:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":469,"indexed":false,"mutability":"mutable","name":"receiverDestination","nameLocation":"4174:19:6","nodeType":"VariableDeclaration","scope":471,"src":"4166:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":468,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3983:216:6"},"src":"3962:238:6"},{"documentation":{"id":472,"nodeType":"StructuredDocumentation","src":"4227:97:6","text":" @notice Thrown when a protected function is called and the contract is paused."},"errorSelector":"9e68cf0b","id":474,"name":"PaymentsEscrowIsPaused","nameLocation":"4335:22:6","nodeType":"ErrorDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[],"src":"4357:2:6"},"src":"4329:31:6"},{"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"4366:196:6","text":" @notice Thrown when the available balance is insufficient to perform an operation\n @param balance The current balance\n @param minBalance The minimum required balance"},"errorSelector":"3db4e691","id":481,"name":"PaymentsEscrowInsufficientBalance","nameLocation":"4573:33:6","nodeType":"ErrorDefinition","parameters":{"id":480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"balance","nameLocation":"4615:7:6","nodeType":"VariableDeclaration","scope":481,"src":"4607:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":476,"name":"uint256","nodeType":"ElementaryTypeName","src":"4607:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":479,"mutability":"mutable","name":"minBalance","nameLocation":"4632:10:6","nodeType":"VariableDeclaration","scope":481,"src":"4624:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":478,"name":"uint256","nodeType":"ElementaryTypeName","src":"4624:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4606:37:6"},"src":"4567:77:6"},{"documentation":{"id":482,"nodeType":"StructuredDocumentation","src":"4650:92:6","text":" @notice Thrown when a thawing is expected to be in progress but it is not"},"errorSelector":"8cbd172f","id":484,"name":"PaymentsEscrowNotThawing","nameLocation":"4753:24:6","nodeType":"ErrorDefinition","parameters":{"id":483,"nodeType":"ParameterList","parameters":[],"src":"4777:2:6"},"src":"4747:33:6"},{"documentation":{"id":485,"nodeType":"StructuredDocumentation","src":"4786:200:6","text":" @notice Thrown when a thawing is still in progress\n @param currentTimestamp The current timestamp\n @param thawEndTimestamp The timestamp at which the thawing period ends"},"errorSelector":"78a1b6f2","id":491,"name":"PaymentsEscrowStillThawing","nameLocation":"4997:26:6","nodeType":"ErrorDefinition","parameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"currentTimestamp","nameLocation":"5032:16:6","nodeType":"VariableDeclaration","scope":491,"src":"5024:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":486,"name":"uint256","nodeType":"ElementaryTypeName","src":"5024:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":489,"mutability":"mutable","name":"thawEndTimestamp","nameLocation":"5058:16:6","nodeType":"VariableDeclaration","scope":491,"src":"5050:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5050:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5023:52:6"},"src":"4991:85:6"},{"documentation":{"id":492,"nodeType":"StructuredDocumentation","src":"5082:200:6","text":" @notice Thrown when setting the thawing period to a value greater than the maximum\n @param thawingPeriod The thawing period\n @param maxWaitPeriod The maximum wait period"},"errorSelector":"5c0f65a1","id":498,"name":"PaymentsEscrowThawingPeriodTooLong","nameLocation":"5293:34:6","nodeType":"ErrorDefinition","parameters":{"id":497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":494,"mutability":"mutable","name":"thawingPeriod","nameLocation":"5336:13:6","nodeType":"VariableDeclaration","scope":498,"src":"5328:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5328:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":496,"mutability":"mutable","name":"maxWaitPeriod","nameLocation":"5359:13:6","nodeType":"VariableDeclaration","scope":498,"src":"5351:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":495,"name":"uint256","nodeType":"ElementaryTypeName","src":"5351:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5327:46:6"},"src":"5287:87:6"},{"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"5380:278:6","text":" @notice Thrown when the contract balance is not consistent with the collection amount\n @param balanceBefore The balance before the collection\n @param balanceAfter The balance after the collection\n @param tokens The amount of tokens collected"},"errorSelector":"7e09c9ac","id":507,"name":"PaymentsEscrowInconsistentCollection","nameLocation":"5669:36:6","nodeType":"ErrorDefinition","parameters":{"id":506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"balanceBefore","nameLocation":"5714:13:6","nodeType":"VariableDeclaration","scope":507,"src":"5706:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":500,"name":"uint256","nodeType":"ElementaryTypeName","src":"5706:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":503,"mutability":"mutable","name":"balanceAfter","nameLocation":"5737:12:6","nodeType":"VariableDeclaration","scope":507,"src":"5729:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":502,"name":"uint256","nodeType":"ElementaryTypeName","src":"5729:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":505,"mutability":"mutable","name":"tokens","nameLocation":"5759:6:6","nodeType":"VariableDeclaration","scope":507,"src":"5751:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":504,"name":"uint256","nodeType":"ElementaryTypeName","src":"5751:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5705:61:6"},"src":"5663:104:6"},{"documentation":{"id":508,"nodeType":"StructuredDocumentation","src":"5773:84:6","text":" @notice Thrown when operating a zero token amount is not allowed."},"errorSelector":"ebfc7cdc","id":510,"name":"PaymentsEscrowInvalidZeroTokens","nameLocation":"5868:31:6","nodeType":"ErrorDefinition","parameters":{"id":509,"nodeType":"ParameterList","parameters":[],"src":"5899:2:6"},"src":"5862:40:6"},{"documentation":{"id":511,"nodeType":"StructuredDocumentation","src":"5908:134:6","text":" @notice The maximum thawing period for escrow funds withdrawal\n @return The maximum thawing period in seconds"},"functionSelector":"b2168b6b","id":516,"implemented":false,"kind":"function","modifiers":[],"name":"MAX_WAIT_PERIOD","nameLocation":"6056:15:6","nodeType":"FunctionDefinition","parameters":{"id":512,"nodeType":"ParameterList","parameters":[],"src":"6071:2:6"},"returnParameters":{"id":515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":516,"src":"6097:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":513,"name":"uint256","nodeType":"ElementaryTypeName","src":"6097:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6096:9:6"},"scope":606,"src":"6047:59:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":517,"nodeType":"StructuredDocumentation","src":"6112:118:6","text":" @notice The thawing period for escrow funds withdrawal\n @return The thawing period in seconds"},"functionSelector":"7b8ae6cf","id":522,"implemented":false,"kind":"function","modifiers":[],"name":"WITHDRAW_ESCROW_THAWING_PERIOD","nameLocation":"6244:30:6","nodeType":"FunctionDefinition","parameters":{"id":518,"nodeType":"ParameterList","parameters":[],"src":"6274:2:6"},"returnParameters":{"id":521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":522,"src":"6300:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":519,"name":"uint256","nodeType":"ElementaryTypeName","src":"6300:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6299:9:6"},"scope":606,"src":"6235:74:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":523,"nodeType":"StructuredDocumentation","src":"6315:50:6","text":" @notice Initialize the contract"},"functionSelector":"8129fc1c","id":526,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"6379:10:6","nodeType":"FunctionDefinition","parameters":{"id":524,"nodeType":"ParameterList","parameters":[],"src":"6389:2:6"},"returnParameters":{"id":525,"nodeType":"ParameterList","parameters":[],"src":"6400:0:6"},"scope":606,"src":"6370:31:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":527,"nodeType":"StructuredDocumentation","src":"6407:338:6","text":" @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n the payer is the transaction caller.\n @dev Emits a {Deposit} event\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to deposit"},"functionSelector":"8340f549","id":536,"implemented":false,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"6759:7:6","nodeType":"FunctionDefinition","parameters":{"id":534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":529,"mutability":"mutable","name":"collector","nameLocation":"6775:9:6","nodeType":"VariableDeclaration","scope":536,"src":"6767:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":528,"name":"address","nodeType":"ElementaryTypeName","src":"6767:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":531,"mutability":"mutable","name":"receiver","nameLocation":"6794:8:6","nodeType":"VariableDeclaration","scope":536,"src":"6786:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":530,"name":"address","nodeType":"ElementaryTypeName","src":"6786:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":533,"mutability":"mutable","name":"tokens","nameLocation":"6812:6:6","nodeType":"VariableDeclaration","scope":536,"src":"6804:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":532,"name":"uint256","nodeType":"ElementaryTypeName","src":"6804:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6766:53:6"},"returnParameters":{"id":535,"nodeType":"ParameterList","parameters":[],"src":"6828:0:6"},"scope":606,"src":"6750:79:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":537,"nodeType":"StructuredDocumentation","src":"6835:374:6","text":" @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n the payer can be specified.\n @dev Emits a {Deposit} event\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to deposit"},"functionSelector":"72eb521e","id":548,"implemented":false,"kind":"function","modifiers":[],"name":"depositTo","nameLocation":"7223:9:6","nodeType":"FunctionDefinition","parameters":{"id":546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":539,"mutability":"mutable","name":"payer","nameLocation":"7241:5:6","nodeType":"VariableDeclaration","scope":548,"src":"7233:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":538,"name":"address","nodeType":"ElementaryTypeName","src":"7233:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":541,"mutability":"mutable","name":"collector","nameLocation":"7256:9:6","nodeType":"VariableDeclaration","scope":548,"src":"7248:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":540,"name":"address","nodeType":"ElementaryTypeName","src":"7248:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":543,"mutability":"mutable","name":"receiver","nameLocation":"7275:8:6","nodeType":"VariableDeclaration","scope":548,"src":"7267:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":542,"name":"address","nodeType":"ElementaryTypeName","src":"7267:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":545,"mutability":"mutable","name":"tokens","nameLocation":"7293:6:6","nodeType":"VariableDeclaration","scope":548,"src":"7285:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":544,"name":"uint256","nodeType":"ElementaryTypeName","src":"7285:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7232:68:6"},"returnParameters":{"id":547,"nodeType":"ParameterList","parameters":[],"src":"7309:0:6"},"scope":606,"src":"7214:96:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":549,"nodeType":"StructuredDocumentation","src":"7316:575:6","text":" @notice Thaw a specific amount of escrow from a payer-collector-receiver's escrow account.\n The payer is the transaction caller.\n Note that repeated calls to this function will overwrite the previous thawing amount\n and reset the thawing period.\n @dev Requirements:\n - `tokens` must be less than or equal to the available balance\n Emits a {Thaw} event.\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to thaw"},"functionSelector":"f93f1cd0","id":558,"implemented":false,"kind":"function","modifiers":[],"name":"thaw","nameLocation":"7905:4:6","nodeType":"FunctionDefinition","parameters":{"id":556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":551,"mutability":"mutable","name":"collector","nameLocation":"7918:9:6","nodeType":"VariableDeclaration","scope":558,"src":"7910:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":550,"name":"address","nodeType":"ElementaryTypeName","src":"7910:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":553,"mutability":"mutable","name":"receiver","nameLocation":"7937:8:6","nodeType":"VariableDeclaration","scope":558,"src":"7929:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":552,"name":"address","nodeType":"ElementaryTypeName","src":"7929:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":555,"mutability":"mutable","name":"tokens","nameLocation":"7955:6:6","nodeType":"VariableDeclaration","scope":558,"src":"7947:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":554,"name":"uint256","nodeType":"ElementaryTypeName","src":"7947:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7909:53:6"},"returnParameters":{"id":557,"nodeType":"ParameterList","parameters":[],"src":"7971:0:6"},"scope":606,"src":"7896:76:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":559,"nodeType":"StructuredDocumentation","src":"7978:312:6","text":" @notice Cancels the thawing of escrow from a payer-collector-receiver's escrow account.\n @param collector The address of the collector\n @param receiver The address of the receiver\n @dev Requirements:\n - The payer must be thawing funds\n Emits a {CancelThaw} event."},"functionSelector":"b1d07de4","id":566,"implemented":false,"kind":"function","modifiers":[],"name":"cancelThaw","nameLocation":"8304:10:6","nodeType":"FunctionDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"collector","nameLocation":"8323:9:6","nodeType":"VariableDeclaration","scope":566,"src":"8315:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":560,"name":"address","nodeType":"ElementaryTypeName","src":"8315:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":563,"mutability":"mutable","name":"receiver","nameLocation":"8342:8:6","nodeType":"VariableDeclaration","scope":566,"src":"8334:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":562,"name":"address","nodeType":"ElementaryTypeName","src":"8334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8314:37:6"},"returnParameters":{"id":565,"nodeType":"ParameterList","parameters":[],"src":"8360:0:6"},"scope":606,"src":"8295:66:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":567,"nodeType":"StructuredDocumentation","src":"8367:486:6","text":" @notice Withdraws all thawed escrow from a payer-collector-receiver's escrow account.\n The payer is the transaction caller.\n Note that the withdrawn funds might be less than the thawed amount if there were\n payment collections in the meantime.\n @dev Requirements:\n - Funds must be thawed\n Emits a {Withdraw} event\n @param collector The address of the collector\n @param receiver The address of the receiver"},"functionSelector":"f940e385","id":574,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"8867:8:6","nodeType":"FunctionDefinition","parameters":{"id":572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":569,"mutability":"mutable","name":"collector","nameLocation":"8884:9:6","nodeType":"VariableDeclaration","scope":574,"src":"8876:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":568,"name":"address","nodeType":"ElementaryTypeName","src":"8876:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":571,"mutability":"mutable","name":"receiver","nameLocation":"8903:8:6","nodeType":"VariableDeclaration","scope":574,"src":"8895:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":570,"name":"address","nodeType":"ElementaryTypeName","src":"8895:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8875:37:6"},"returnParameters":{"id":573,"nodeType":"ParameterList","parameters":[],"src":"8921:0:6"},"scope":606,"src":"8858:64:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":575,"nodeType":"StructuredDocumentation","src":"8928:811:6","text":" @notice Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for\n distribution using the Graph Horizon Payments protocol.\n The function will revert if there are not enough funds in the escrow.\n Emits an {EscrowCollected} event\n @param paymentType The type of payment being collected as defined in the {IGraphPayments} interface\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param tokens The amount of tokens to collect\n @param dataService The address of the data service\n @param dataServiceCut The data service cut in PPM that {GraphPayments} should send\n @param receiverDestination The address where the receiver's payment should be sent."},"functionSelector":"1230fa3e","id":593,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nameLocation":"9753:7:6","nodeType":"FunctionDefinition","parameters":{"id":591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":578,"mutability":"mutable","name":"paymentType","nameLocation":"9798:11:6","nodeType":"VariableDeclaration","scope":593,"src":"9770:39:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":577,"nodeType":"UserDefinedTypeName","pathNode":{"id":576,"name":"IGraphPayments.PaymentTypes","nameLocations":["9770:14:6","9785:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"9770:27:6"},"referencedDeclaration":299,"src":"9770:27:6","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"},{"constant":false,"id":580,"mutability":"mutable","name":"payer","nameLocation":"9827:5:6","nodeType":"VariableDeclaration","scope":593,"src":"9819:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":579,"name":"address","nodeType":"ElementaryTypeName","src":"9819:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":582,"mutability":"mutable","name":"receiver","nameLocation":"9850:8:6","nodeType":"VariableDeclaration","scope":593,"src":"9842:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":581,"name":"address","nodeType":"ElementaryTypeName","src":"9842:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":584,"mutability":"mutable","name":"tokens","nameLocation":"9876:6:6","nodeType":"VariableDeclaration","scope":593,"src":"9868:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":583,"name":"uint256","nodeType":"ElementaryTypeName","src":"9868:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":586,"mutability":"mutable","name":"dataService","nameLocation":"9900:11:6","nodeType":"VariableDeclaration","scope":593,"src":"9892:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":585,"name":"address","nodeType":"ElementaryTypeName","src":"9892:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":588,"mutability":"mutable","name":"dataServiceCut","nameLocation":"9929:14:6","nodeType":"VariableDeclaration","scope":593,"src":"9921:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":587,"name":"uint256","nodeType":"ElementaryTypeName","src":"9921:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":590,"mutability":"mutable","name":"receiverDestination","nameLocation":"9961:19:6","nodeType":"VariableDeclaration","scope":593,"src":"9953:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":589,"name":"address","nodeType":"ElementaryTypeName","src":"9953:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9760:226:6"},"returnParameters":{"id":592,"nodeType":"ParameterList","parameters":[],"src":"9995:0:6"},"scope":606,"src":"9744:252:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":594,"nodeType":"StructuredDocumentation","src":"10002:397:6","text":" @notice Get the balance of a payer-collector-receiver tuple\n This function will return 0 if the current balance is less than the amount of funds being thawed.\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @return The balance of the payer-collector-receiver tuple"},"functionSelector":"d6bd603c","id":605,"implemented":false,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"10413:10:6","nodeType":"FunctionDefinition","parameters":{"id":601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":596,"mutability":"mutable","name":"payer","nameLocation":"10432:5:6","nodeType":"VariableDeclaration","scope":605,"src":"10424:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":595,"name":"address","nodeType":"ElementaryTypeName","src":"10424:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":598,"mutability":"mutable","name":"collector","nameLocation":"10447:9:6","nodeType":"VariableDeclaration","scope":605,"src":"10439:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":597,"name":"address","nodeType":"ElementaryTypeName","src":"10439:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":600,"mutability":"mutable","name":"receiver","nameLocation":"10466:8:6","nodeType":"VariableDeclaration","scope":605,"src":"10458:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":599,"name":"address","nodeType":"ElementaryTypeName","src":"10458:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10423:52:6"},"returnParameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":605,"src":"10499:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"10499:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10498:9:6"},"scope":606,"src":"10404:104:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":607,"src":"922:9588:6","usedErrors":[474,481,484,491,498,507,510],"usedEvents":[418,431,444,455,471]}],"src":"45:10466:6"},"id":6},"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol","exportedSymbols":{"IAuthorizable":[279],"IGraphPayments":[361],"IPaymentsCollector":[394],"IRecurringCollector":[1076]},"id":1077,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":608,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"45:23:7"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsCollector.sol","file":"./IPaymentsCollector.sol","id":610,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1077,"sourceUnit":395,"src":"70:62:7","symbolAliases":[{"foreign":{"id":609,"name":"IPaymentsCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"79:18:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","file":"./IGraphPayments.sol","id":612,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1077,"sourceUnit":362,"src":"133:54:7","symbolAliases":[{"foreign":{"id":611,"name":"IGraphPayments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"142:14:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IAuthorizable.sol","file":"./IAuthorizable.sol","id":614,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1077,"sourceUnit":280,"src":"188:52:7","symbolAliases":[{"foreign":{"id":613,"name":"IAuthorizable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":279,"src":"197:13:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":616,"name":"IAuthorizable","nameLocations":["574:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":279,"src":"574:13:7"},"id":617,"nodeType":"InheritanceSpecifier","src":"574:13:7"},{"baseName":{"id":618,"name":"IPaymentsCollector","nameLocations":["589:18:7"],"nodeType":"IdentifierPath","referencedDeclaration":394,"src":"589:18:7"},"id":619,"nodeType":"InheritanceSpecifier","src":"589:18:7"}],"canonicalName":"IRecurringCollector","contractDependencies":[],"contractKind":"interface","documentation":{"id":615,"nodeType":"StructuredDocumentation","src":"242:298:7","text":" @title Interface for the {RecurringCollector} contract\n @author Edge & Node\n @dev Implements the {IPaymentCollector} interface as defined by the Graph\n Horizon payments protocol.\n @notice Implements a payments collector contract that can be used to collect\n recurrent payments."},"fullyImplemented":false,"id":1076,"linearizedBaseContracts":[1076,394,279],"name":"IRecurringCollector","nameLocation":"551:19:7","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IRecurringCollector.AgreementState","documentation":{"id":620,"nodeType":"StructuredDocumentation","src":"614:37:7","text":"@notice The state of an agreement"},"id":625,"members":[{"id":621,"name":"NotAccepted","nameLocation":"686:11:7","nodeType":"EnumValue","src":"686:11:7"},{"id":622,"name":"Accepted","nameLocation":"707:8:7","nodeType":"EnumValue","src":"707:8:7"},{"id":623,"name":"CanceledByServiceProvider","nameLocation":"725:25:7","nodeType":"EnumValue","src":"725:25:7"},{"id":624,"name":"CanceledByPayer","nameLocation":"760:15:7","nodeType":"EnumValue","src":"760:15:7"}],"name":"AgreementState","nameLocation":"661:14:7","nodeType":"EnumDefinition","src":"656:125:7"},{"canonicalName":"IRecurringCollector.CancelAgreementBy","documentation":{"id":626,"nodeType":"StructuredDocumentation","src":"787:50:7","text":"@notice The party that can cancel an agreement"},"id":630,"members":[{"id":627,"name":"ServiceProvider","nameLocation":"875:15:7","nodeType":"EnumValue","src":"875:15:7"},{"id":628,"name":"Payer","nameLocation":"900:5:7","nodeType":"EnumValue","src":"900:5:7"},{"id":629,"name":"ThirdParty","nameLocation":"915:10:7","nodeType":"EnumValue","src":"915:10:7"}],"name":"CancelAgreementBy","nameLocation":"847:17:7","nodeType":"EnumDefinition","src":"842:89:7"},{"canonicalName":"IRecurringCollector.AgreementNotCollectableReason","documentation":{"id":631,"nodeType":"StructuredDocumentation","src":"937:55:7","text":"@notice Reasons why an agreement is not collectable"},"id":636,"members":[{"id":632,"name":"None","nameLocation":"1042:4:7","nodeType":"EnumValue","src":"1042:4:7"},{"id":633,"name":"InvalidAgreementState","nameLocation":"1056:21:7","nodeType":"EnumValue","src":"1056:21:7"},{"id":634,"name":"ZeroCollectionSeconds","nameLocation":"1087:21:7","nodeType":"EnumValue","src":"1087:21:7"},{"id":635,"name":"InvalidTemporalWindow","nameLocation":"1118:21:7","nodeType":"EnumValue","src":"1118:21:7"}],"name":"AgreementNotCollectableReason","nameLocation":"1002:29:7","nodeType":"EnumDefinition","src":"997:148:7"},{"canonicalName":"IRecurringCollector.SignedRCA","documentation":{"id":637,"nodeType":"StructuredDocumentation","src":"1151:262:7","text":" @notice A representation of a signed Recurring Collection Agreement (RCA)\n @param rca The Recurring Collection Agreement to be signed\n @param signature The signature of the RCA - 65 bytes: r (32 Bytes) || s (32 Bytes) || v (1 Byte)"},"id":643,"members":[{"constant":false,"id":640,"mutability":"mutable","name":"rca","nameLocation":"1474:3:7","nodeType":"VariableDeclaration","scope":643,"src":"1445:32:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":639,"nodeType":"UserDefinedTypeName","pathNode":{"id":638,"name":"RecurringCollectionAgreement","nameLocations":["1445:28:7"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"1445:28:7"},"referencedDeclaration":667,"src":"1445:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"},{"constant":false,"id":642,"mutability":"mutable","name":"signature","nameLocation":"1493:9:7","nodeType":"VariableDeclaration","scope":643,"src":"1487:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":641,"name":"bytes","nodeType":"ElementaryTypeName","src":"1487:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"SignedRCA","nameLocation":"1425:9:7","nodeType":"StructDefinition","scope":1076,"src":"1418:91:7","visibility":"public"},{"canonicalName":"IRecurringCollector.RecurringCollectionAgreement","documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"1515:1112:7","text":" @notice The Recurring Collection Agreement (RCA)\n @param deadline The deadline for accepting the RCA\n @param endsAt The timestamp when the agreement ends\n @param payer The address of the payer the RCA was issued by\n @param dataService The address of the data service the RCA was issued to\n @param serviceProvider The address of the service provider the RCA was issued to\n @param maxInitialTokens The maximum amount of tokens that can be collected in the first collection\n on top of the amount allowed for subsequent collections\n @param maxOngoingTokensPerSecond The maximum amount of tokens that can be collected per second\n except for the first collection\n @param minSecondsPerCollection The minimum amount of seconds that must pass between collections\n @param maxSecondsPerCollection The maximum amount of seconds that can pass between collections\n @param nonce A unique nonce for preventing collisions (user-chosen)\n @param metadata Arbitrary metadata to extend functionality if a data service requires it"},"id":667,"members":[{"constant":false,"id":646,"mutability":"mutable","name":"deadline","nameLocation":"2737:8:7","nodeType":"VariableDeclaration","scope":667,"src":"2730:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":645,"name":"uint64","nodeType":"ElementaryTypeName","src":"2730:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":648,"mutability":"mutable","name":"endsAt","nameLocation":"2762:6:7","nodeType":"VariableDeclaration","scope":667,"src":"2755:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":647,"name":"uint64","nodeType":"ElementaryTypeName","src":"2755:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":650,"mutability":"mutable","name":"payer","nameLocation":"2786:5:7","nodeType":"VariableDeclaration","scope":667,"src":"2778:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":649,"name":"address","nodeType":"ElementaryTypeName","src":"2778:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":652,"mutability":"mutable","name":"dataService","nameLocation":"2809:11:7","nodeType":"VariableDeclaration","scope":667,"src":"2801:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":651,"name":"address","nodeType":"ElementaryTypeName","src":"2801:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":654,"mutability":"mutable","name":"serviceProvider","nameLocation":"2838:15:7","nodeType":"VariableDeclaration","scope":667,"src":"2830:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":653,"name":"address","nodeType":"ElementaryTypeName","src":"2830:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":656,"mutability":"mutable","name":"maxInitialTokens","nameLocation":"2871:16:7","nodeType":"VariableDeclaration","scope":667,"src":"2863:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":655,"name":"uint256","nodeType":"ElementaryTypeName","src":"2863:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":658,"mutability":"mutable","name":"maxOngoingTokensPerSecond","nameLocation":"2905:25:7","nodeType":"VariableDeclaration","scope":667,"src":"2897:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2897:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":660,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"2947:23:7","nodeType":"VariableDeclaration","scope":667,"src":"2940:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":659,"name":"uint32","nodeType":"ElementaryTypeName","src":"2940:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":662,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"2987:23:7","nodeType":"VariableDeclaration","scope":667,"src":"2980:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":661,"name":"uint32","nodeType":"ElementaryTypeName","src":"2980:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":664,"mutability":"mutable","name":"nonce","nameLocation":"3028:5:7","nodeType":"VariableDeclaration","scope":667,"src":"3020:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":663,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":666,"mutability":"mutable","name":"metadata","nameLocation":"3049:8:7","nodeType":"VariableDeclaration","scope":667,"src":"3043:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":665,"name":"bytes","nodeType":"ElementaryTypeName","src":"3043:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RecurringCollectionAgreement","nameLocation":"2691:28:7","nodeType":"StructDefinition","scope":1076,"src":"2684:380:7","visibility":"public"},{"canonicalName":"IRecurringCollector.SignedRCAU","documentation":{"id":668,"nodeType":"StructuredDocumentation","src":"3070:279:7","text":" @notice A representation of a signed Recurring Collection Agreement Update (RCAU)\n @param rcau The Recurring Collection Agreement Update to be signed\n @param signature The signature of the RCAU - 65 bytes: r (32 Bytes) || s (32 Bytes) || v (1 Byte)"},"id":674,"members":[{"constant":false,"id":671,"mutability":"mutable","name":"rcau","nameLocation":"3417:4:7","nodeType":"VariableDeclaration","scope":674,"src":"3382:39:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":670,"nodeType":"UserDefinedTypeName","pathNode":{"id":669,"name":"RecurringCollectionAgreementUpdate","nameLocations":["3382:34:7"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"3382:34:7"},"referencedDeclaration":694,"src":"3382:34:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"},{"constant":false,"id":673,"mutability":"mutable","name":"signature","nameLocation":"3437:9:7","nodeType":"VariableDeclaration","scope":674,"src":"3431:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":672,"name":"bytes","nodeType":"ElementaryTypeName","src":"3431:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"SignedRCAU","nameLocation":"3361:10:7","nodeType":"StructDefinition","scope":1076,"src":"3354:99:7","visibility":"public"},{"canonicalName":"IRecurringCollector.RecurringCollectionAgreementUpdate","documentation":{"id":675,"nodeType":"StructuredDocumentation","src":"3459:946:7","text":" @notice The Recurring Collection Agreement Update (RCAU)\n @param agreementId The agreement ID of the RCAU\n @param deadline The deadline for upgrading the RCA\n @param endsAt The timestamp when the agreement ends\n @param maxInitialTokens The maximum amount of tokens that can be collected in the first collection\n on top of the amount allowed for subsequent collections\n @param maxOngoingTokensPerSecond The maximum amount of tokens that can be collected per second\n except for the first collection\n @param minSecondsPerCollection The minimum amount of seconds that must pass between collections\n @param maxSecondsPerCollection The maximum amount of seconds that can pass between collections\n @param nonce The nonce for preventing replay attacks (must be current nonce + 1)\n @param metadata Arbitrary metadata to extend functionality if a data service requires it"},"id":694,"members":[{"constant":false,"id":677,"mutability":"mutable","name":"agreementId","nameLocation":"4522:11:7","nodeType":"VariableDeclaration","scope":694,"src":"4514:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":676,"name":"bytes16","nodeType":"ElementaryTypeName","src":"4514:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":679,"mutability":"mutable","name":"deadline","nameLocation":"4550:8:7","nodeType":"VariableDeclaration","scope":694,"src":"4543:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":678,"name":"uint64","nodeType":"ElementaryTypeName","src":"4543:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"endsAt","nameLocation":"4575:6:7","nodeType":"VariableDeclaration","scope":694,"src":"4568:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":680,"name":"uint64","nodeType":"ElementaryTypeName","src":"4568:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":683,"mutability":"mutable","name":"maxInitialTokens","nameLocation":"4599:16:7","nodeType":"VariableDeclaration","scope":694,"src":"4591:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":682,"name":"uint256","nodeType":"ElementaryTypeName","src":"4591:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":685,"mutability":"mutable","name":"maxOngoingTokensPerSecond","nameLocation":"4633:25:7","nodeType":"VariableDeclaration","scope":694,"src":"4625:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":684,"name":"uint256","nodeType":"ElementaryTypeName","src":"4625:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":687,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"4675:23:7","nodeType":"VariableDeclaration","scope":694,"src":"4668:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":686,"name":"uint32","nodeType":"ElementaryTypeName","src":"4668:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":689,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"4715:23:7","nodeType":"VariableDeclaration","scope":694,"src":"4708:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":688,"name":"uint32","nodeType":"ElementaryTypeName","src":"4708:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":691,"mutability":"mutable","name":"nonce","nameLocation":"4755:5:7","nodeType":"VariableDeclaration","scope":694,"src":"4748:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":690,"name":"uint32","nodeType":"ElementaryTypeName","src":"4748:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":693,"mutability":"mutable","name":"metadata","nameLocation":"4776:8:7","nodeType":"VariableDeclaration","scope":694,"src":"4770:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":692,"name":"bytes","nodeType":"ElementaryTypeName","src":"4770:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RecurringCollectionAgreementUpdate","nameLocation":"4469:34:7","nodeType":"StructDefinition","scope":1076,"src":"4462:329:7","visibility":"public"},{"canonicalName":"IRecurringCollector.AgreementData","documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"4797:1234:7","text":" @notice The data for an agreement\n @dev This struct is used to store the data of an agreement in the contract\n @param dataService The address of the data service\n @param payer The address of the payer\n @param serviceProvider The address of the service provider\n @param acceptedAt The timestamp when the agreement was accepted\n @param lastCollectionAt The timestamp when the agreement was last collected at\n @param endsAt The timestamp when the agreement ends\n @param maxInitialTokens The maximum amount of tokens that can be collected in the first collection\n on top of the amount allowed for subsequent collections\n @param maxOngoingTokensPerSecond The maximum amount of tokens that can be collected per second\n except for the first collection\n @param minSecondsPerCollection The minimum amount of seconds that must pass between collections\n @param maxSecondsPerCollection The maximum amount of seconds that can pass between collections\n @param updateNonce The current nonce for updates (prevents replay attacks)\n @param canceledAt The timestamp when the agreement was canceled\n @param state The state of the agreement"},"id":723,"members":[{"constant":false,"id":697,"mutability":"mutable","name":"dataService","nameLocation":"6075:11:7","nodeType":"VariableDeclaration","scope":723,"src":"6067:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":696,"name":"address","nodeType":"ElementaryTypeName","src":"6067:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"payer","nameLocation":"6104:5:7","nodeType":"VariableDeclaration","scope":723,"src":"6096:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":698,"name":"address","nodeType":"ElementaryTypeName","src":"6096:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":701,"mutability":"mutable","name":"serviceProvider","nameLocation":"6127:15:7","nodeType":"VariableDeclaration","scope":723,"src":"6119:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"6119:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":703,"mutability":"mutable","name":"acceptedAt","nameLocation":"6159:10:7","nodeType":"VariableDeclaration","scope":723,"src":"6152:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":702,"name":"uint64","nodeType":"ElementaryTypeName","src":"6152:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":705,"mutability":"mutable","name":"lastCollectionAt","nameLocation":"6186:16:7","nodeType":"VariableDeclaration","scope":723,"src":"6179:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":704,"name":"uint64","nodeType":"ElementaryTypeName","src":"6179:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":707,"mutability":"mutable","name":"endsAt","nameLocation":"6219:6:7","nodeType":"VariableDeclaration","scope":723,"src":"6212:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":706,"name":"uint64","nodeType":"ElementaryTypeName","src":"6212:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":709,"mutability":"mutable","name":"maxInitialTokens","nameLocation":"6243:16:7","nodeType":"VariableDeclaration","scope":723,"src":"6235:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":708,"name":"uint256","nodeType":"ElementaryTypeName","src":"6235:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"maxOngoingTokensPerSecond","nameLocation":"6277:25:7","nodeType":"VariableDeclaration","scope":723,"src":"6269:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":710,"name":"uint256","nodeType":"ElementaryTypeName","src":"6269:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":713,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"6319:23:7","nodeType":"VariableDeclaration","scope":723,"src":"6312:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":712,"name":"uint32","nodeType":"ElementaryTypeName","src":"6312:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":715,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"6359:23:7","nodeType":"VariableDeclaration","scope":723,"src":"6352:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":714,"name":"uint32","nodeType":"ElementaryTypeName","src":"6352:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"updateNonce","nameLocation":"6399:11:7","nodeType":"VariableDeclaration","scope":723,"src":"6392:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":716,"name":"uint32","nodeType":"ElementaryTypeName","src":"6392:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":719,"mutability":"mutable","name":"canceledAt","nameLocation":"6427:10:7","nodeType":"VariableDeclaration","scope":723,"src":"6420:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":718,"name":"uint64","nodeType":"ElementaryTypeName","src":"6420:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"state","nameLocation":"6462:5:7","nodeType":"VariableDeclaration","scope":723,"src":"6447:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"typeName":{"id":721,"nodeType":"UserDefinedTypeName","pathNode":{"id":720,"name":"AgreementState","nameLocations":["6447:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":625,"src":"6447:14:7"},"referencedDeclaration":625,"src":"6447:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"visibility":"internal"}],"name":"AgreementData","nameLocation":"6043:13:7","nodeType":"StructDefinition","scope":1076,"src":"6036:438:7","visibility":"public"},{"canonicalName":"IRecurringCollector.CollectParams","documentation":{"id":724,"nodeType":"StructuredDocumentation","src":"6480:494:7","text":" @notice The params for collecting an agreement\n @param agreementId The agreement ID of the RCA\n @param collectionId The collection ID of the RCA\n @param tokens The amount of tokens to collect\n @param dataServiceCut The data service cut in parts per million\n @param receiverDestination The address where the collected fees should be sent\n @param maxSlippage Max acceptable tokens to lose due to rate limiting, or type(uint256).max to ignore"},"id":737,"members":[{"constant":false,"id":726,"mutability":"mutable","name":"agreementId","nameLocation":"7018:11:7","nodeType":"VariableDeclaration","scope":737,"src":"7010:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":725,"name":"bytes16","nodeType":"ElementaryTypeName","src":"7010:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"collectionId","nameLocation":"7047:12:7","nodeType":"VariableDeclaration","scope":737,"src":"7039:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7039:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":730,"mutability":"mutable","name":"tokens","nameLocation":"7077:6:7","nodeType":"VariableDeclaration","scope":737,"src":"7069:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":729,"name":"uint256","nodeType":"ElementaryTypeName","src":"7069:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":732,"mutability":"mutable","name":"dataServiceCut","nameLocation":"7101:14:7","nodeType":"VariableDeclaration","scope":737,"src":"7093:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"7093:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"receiverDestination","nameLocation":"7133:19:7","nodeType":"VariableDeclaration","scope":737,"src":"7125:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":733,"name":"address","nodeType":"ElementaryTypeName","src":"7125:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"maxSlippage","nameLocation":"7170:11:7","nodeType":"VariableDeclaration","scope":737,"src":"7162:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"7162:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CollectParams","nameLocation":"6986:13:7","nodeType":"StructDefinition","scope":1076,"src":"6979:209:7","visibility":"public"},{"anonymous":false,"documentation":{"id":738,"nodeType":"StructuredDocumentation","src":"7194:819:7","text":" @notice Emitted when an agreement is accepted\n @param dataService The address of the data service\n @param payer The address of the payer\n @param serviceProvider The address of the service provider\n @param agreementId The agreement ID\n @param acceptedAt The timestamp when the agreement was accepted\n @param endsAt The timestamp when the agreement ends\n @param maxInitialTokens The maximum amount of tokens that can be collected in the first collection\n @param maxOngoingTokensPerSecond The maximum amount of tokens that can be collected per second\n @param minSecondsPerCollection The minimum amount of seconds that must pass between collections\n @param maxSecondsPerCollection The maximum amount of seconds that can pass between collections"},"eventSelector":"5c73ff1adceb41a89ec387988247ce874a862d4fde244e9d8a068159ddcd7ecb","id":760,"name":"AgreementAccepted","nameLocation":"8024:17:7","nodeType":"EventDefinition","parameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":740,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"8067:11:7","nodeType":"VariableDeclaration","scope":760,"src":"8051:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":739,"name":"address","nodeType":"ElementaryTypeName","src":"8051:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":742,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"8104:5:7","nodeType":"VariableDeclaration","scope":760,"src":"8088:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":741,"name":"address","nodeType":"ElementaryTypeName","src":"8088:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":744,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"8135:15:7","nodeType":"VariableDeclaration","scope":760,"src":"8119:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":743,"name":"address","nodeType":"ElementaryTypeName","src":"8119:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":746,"indexed":false,"mutability":"mutable","name":"agreementId","nameLocation":"8168:11:7","nodeType":"VariableDeclaration","scope":760,"src":"8160:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":745,"name":"bytes16","nodeType":"ElementaryTypeName","src":"8160:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":748,"indexed":false,"mutability":"mutable","name":"acceptedAt","nameLocation":"8196:10:7","nodeType":"VariableDeclaration","scope":760,"src":"8189:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":747,"name":"uint64","nodeType":"ElementaryTypeName","src":"8189:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":750,"indexed":false,"mutability":"mutable","name":"endsAt","nameLocation":"8223:6:7","nodeType":"VariableDeclaration","scope":760,"src":"8216:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":749,"name":"uint64","nodeType":"ElementaryTypeName","src":"8216:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":752,"indexed":false,"mutability":"mutable","name":"maxInitialTokens","nameLocation":"8247:16:7","nodeType":"VariableDeclaration","scope":760,"src":"8239:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":751,"name":"uint256","nodeType":"ElementaryTypeName","src":"8239:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":754,"indexed":false,"mutability":"mutable","name":"maxOngoingTokensPerSecond","nameLocation":"8281:25:7","nodeType":"VariableDeclaration","scope":760,"src":"8273:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":753,"name":"uint256","nodeType":"ElementaryTypeName","src":"8273:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":756,"indexed":false,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"8323:23:7","nodeType":"VariableDeclaration","scope":760,"src":"8316:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":755,"name":"uint32","nodeType":"ElementaryTypeName","src":"8316:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":758,"indexed":false,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"8363:23:7","nodeType":"VariableDeclaration","scope":760,"src":"8356:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":757,"name":"uint32","nodeType":"ElementaryTypeName","src":"8356:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8041:351:7"},"src":"8018:375:7"},{"anonymous":false,"documentation":{"id":761,"nodeType":"StructuredDocumentation","src":"8399:410:7","text":" @notice Emitted when an agreement is canceled\n @param dataService The address of the data service\n @param payer The address of the payer\n @param serviceProvider The address of the service provider\n @param agreementId The agreement ID\n @param canceledAt The timestamp when the agreement was canceled\n @param canceledBy The party that canceled the agreement"},"eventSelector":"6c84e4211c113296e4f686326bbda75a463cfacf375099fe12c744cdda423215","id":776,"name":"AgreementCanceled","nameLocation":"8820:17:7","nodeType":"EventDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":763,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"8863:11:7","nodeType":"VariableDeclaration","scope":776,"src":"8847:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":762,"name":"address","nodeType":"ElementaryTypeName","src":"8847:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":765,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"8900:5:7","nodeType":"VariableDeclaration","scope":776,"src":"8884:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":764,"name":"address","nodeType":"ElementaryTypeName","src":"8884:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":767,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"8931:15:7","nodeType":"VariableDeclaration","scope":776,"src":"8915:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"8915:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":769,"indexed":false,"mutability":"mutable","name":"agreementId","nameLocation":"8964:11:7","nodeType":"VariableDeclaration","scope":776,"src":"8956:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":768,"name":"bytes16","nodeType":"ElementaryTypeName","src":"8956:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":771,"indexed":false,"mutability":"mutable","name":"canceledAt","nameLocation":"8992:10:7","nodeType":"VariableDeclaration","scope":776,"src":"8985:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":770,"name":"uint64","nodeType":"ElementaryTypeName","src":"8985:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":774,"indexed":false,"mutability":"mutable","name":"canceledBy","nameLocation":"9030:10:7","nodeType":"VariableDeclaration","scope":776,"src":"9012:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CancelAgreementBy_$630","typeString":"enum IRecurringCollector.CancelAgreementBy"},"typeName":{"id":773,"nodeType":"UserDefinedTypeName","pathNode":{"id":772,"name":"CancelAgreementBy","nameLocations":["9012:17:7"],"nodeType":"IdentifierPath","referencedDeclaration":630,"src":"9012:17:7"},"referencedDeclaration":630,"src":"9012:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_CancelAgreementBy_$630","typeString":"enum IRecurringCollector.CancelAgreementBy"}},"visibility":"internal"}],"src":"8837:209:7"},"src":"8814:233:7"},{"anonymous":false,"documentation":{"id":777,"nodeType":"StructuredDocumentation","src":"9053:816:7","text":" @notice Emitted when an agreement is updated\n @param dataService The address of the data service\n @param payer The address of the payer\n @param serviceProvider The address of the service provider\n @param agreementId The agreement ID\n @param updatedAt The timestamp when the agreement was updated\n @param endsAt The timestamp when the agreement ends\n @param maxInitialTokens The maximum amount of tokens that can be collected in the first collection\n @param maxOngoingTokensPerSecond The maximum amount of tokens that can be collected per second\n @param minSecondsPerCollection The minimum amount of seconds that must pass between collections\n @param maxSecondsPerCollection The maximum amount of seconds that can pass between collections"},"eventSelector":"a4fdbbb45cbf003da16915241fbcbbbe822a7cb811e896ec2b44560d2ccc1d43","id":799,"name":"AgreementUpdated","nameLocation":"9880:16:7","nodeType":"EventDefinition","parameters":{"id":798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":779,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"9922:11:7","nodeType":"VariableDeclaration","scope":799,"src":"9906:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":778,"name":"address","nodeType":"ElementaryTypeName","src":"9906:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":781,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"9959:5:7","nodeType":"VariableDeclaration","scope":799,"src":"9943:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"9943:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":783,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"9990:15:7","nodeType":"VariableDeclaration","scope":799,"src":"9974:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":782,"name":"address","nodeType":"ElementaryTypeName","src":"9974:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":785,"indexed":false,"mutability":"mutable","name":"agreementId","nameLocation":"10023:11:7","nodeType":"VariableDeclaration","scope":799,"src":"10015:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":784,"name":"bytes16","nodeType":"ElementaryTypeName","src":"10015:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":787,"indexed":false,"mutability":"mutable","name":"updatedAt","nameLocation":"10051:9:7","nodeType":"VariableDeclaration","scope":799,"src":"10044:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":786,"name":"uint64","nodeType":"ElementaryTypeName","src":"10044:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":789,"indexed":false,"mutability":"mutable","name":"endsAt","nameLocation":"10077:6:7","nodeType":"VariableDeclaration","scope":799,"src":"10070:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":788,"name":"uint64","nodeType":"ElementaryTypeName","src":"10070:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":791,"indexed":false,"mutability":"mutable","name":"maxInitialTokens","nameLocation":"10101:16:7","nodeType":"VariableDeclaration","scope":799,"src":"10093:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":790,"name":"uint256","nodeType":"ElementaryTypeName","src":"10093:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":793,"indexed":false,"mutability":"mutable","name":"maxOngoingTokensPerSecond","nameLocation":"10135:25:7","nodeType":"VariableDeclaration","scope":799,"src":"10127:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":792,"name":"uint256","nodeType":"ElementaryTypeName","src":"10127:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":795,"indexed":false,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"10177:23:7","nodeType":"VariableDeclaration","scope":799,"src":"10170:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":794,"name":"uint32","nodeType":"ElementaryTypeName","src":"10170:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":797,"indexed":false,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"10217:23:7","nodeType":"VariableDeclaration","scope":799,"src":"10210:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":796,"name":"uint32","nodeType":"ElementaryTypeName","src":"10210:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"9896:350:7"},"src":"9874:373:7"},{"anonymous":false,"documentation":{"id":800,"nodeType":"StructuredDocumentation","src":"10253:433:7","text":" @notice Emitted when an RCA is collected\n @param dataService The address of the data service\n @param payer The address of the payer\n @param serviceProvider The address of the service provider\n @param agreementId The agreement ID\n @param collectionId The collection ID\n @param tokens The amount of tokens collected\n @param dataServiceCut The tokens cut for the data service"},"eventSelector":"56a7e288e1417db8fe63ea473908abdd91457d7f45b8884d230116d03a93d8e0","id":816,"name":"RCACollected","nameLocation":"10697:12:7","nodeType":"EventDefinition","parameters":{"id":815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":802,"indexed":true,"mutability":"mutable","name":"dataService","nameLocation":"10735:11:7","nodeType":"VariableDeclaration","scope":816,"src":"10719:27:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":801,"name":"address","nodeType":"ElementaryTypeName","src":"10719:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":804,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"10772:5:7","nodeType":"VariableDeclaration","scope":816,"src":"10756:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":803,"name":"address","nodeType":"ElementaryTypeName","src":"10756:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":806,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"10803:15:7","nodeType":"VariableDeclaration","scope":816,"src":"10787:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":805,"name":"address","nodeType":"ElementaryTypeName","src":"10787:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":808,"indexed":false,"mutability":"mutable","name":"agreementId","nameLocation":"10836:11:7","nodeType":"VariableDeclaration","scope":816,"src":"10828:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":807,"name":"bytes16","nodeType":"ElementaryTypeName","src":"10828:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":810,"indexed":false,"mutability":"mutable","name":"collectionId","nameLocation":"10865:12:7","nodeType":"VariableDeclaration","scope":816,"src":"10857:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10857:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":812,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"10895:6:7","nodeType":"VariableDeclaration","scope":816,"src":"10887:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":811,"name":"uint256","nodeType":"ElementaryTypeName","src":"10887:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":814,"indexed":false,"mutability":"mutable","name":"dataServiceCut","nameLocation":"10919:14:7","nodeType":"VariableDeclaration","scope":816,"src":"10911:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":813,"name":"uint256","nodeType":"ElementaryTypeName","src":"10911:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10709:230:7"},"src":"10691:249:7"},{"documentation":{"id":817,"nodeType":"StructuredDocumentation","src":"10946:76:7","text":" @notice Thrown when accepting an agreement with a zero ID"},"errorSelector":"842cbb28","id":819,"name":"RecurringCollectorAgreementIdZero","nameLocation":"11033:33:7","nodeType":"ErrorDefinition","parameters":{"id":818,"nodeType":"ParameterList","parameters":[],"src":"11066:2:7"},"src":"11027:42:7"},{"documentation":{"id":820,"nodeType":"StructuredDocumentation","src":"11075:226:7","text":" @notice Thrown when interacting with an agreement not owned by the message sender\n @param agreementId The agreement ID\n @param unauthorizedDataService The address of the unauthorized data service"},"errorSelector":"b14e4fb5","id":826,"name":"RecurringCollectorDataServiceNotAuthorized","nameLocation":"11312:42:7","nodeType":"ErrorDefinition","parameters":{"id":825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":822,"mutability":"mutable","name":"agreementId","nameLocation":"11363:11:7","nodeType":"VariableDeclaration","scope":826,"src":"11355:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":821,"name":"bytes16","nodeType":"ElementaryTypeName","src":"11355:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":824,"mutability":"mutable","name":"unauthorizedDataService","nameLocation":"11384:23:7","nodeType":"VariableDeclaration","scope":826,"src":"11376:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":823,"name":"address","nodeType":"ElementaryTypeName","src":"11376:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11354:54:7"},"src":"11306:103:7"},{"documentation":{"id":827,"nodeType":"StructuredDocumentation","src":"11414:169:7","text":" @notice Thrown when the data service is not authorized for the service provider\n @param dataService The address of the unauthorized data service"},"errorSelector":"a637730f","id":831,"name":"RecurringCollectorUnauthorizedDataService","nameLocation":"11594:41:7","nodeType":"ErrorDefinition","parameters":{"id":830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":829,"mutability":"mutable","name":"dataService","nameLocation":"11644:11:7","nodeType":"VariableDeclaration","scope":831,"src":"11636:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":828,"name":"address","nodeType":"ElementaryTypeName","src":"11636:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11635:21:7"},"src":"11588:69:7"},{"documentation":{"id":832,"nodeType":"StructuredDocumentation","src":"11663:200:7","text":" @notice Thrown when interacting with an agreement with an elapsed deadline\n @param currentTimestamp The current timestamp\n @param deadline The elapsed deadline timestamp"},"errorSelector":"26769f8d","id":838,"name":"RecurringCollectorAgreementDeadlineElapsed","nameLocation":"11874:42:7","nodeType":"ErrorDefinition","parameters":{"id":837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":834,"mutability":"mutable","name":"currentTimestamp","nameLocation":"11925:16:7","nodeType":"VariableDeclaration","scope":838,"src":"11917:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":833,"name":"uint256","nodeType":"ElementaryTypeName","src":"11917:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":836,"mutability":"mutable","name":"deadline","nameLocation":"11950:8:7","nodeType":"VariableDeclaration","scope":838,"src":"11943:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":835,"name":"uint64","nodeType":"ElementaryTypeName","src":"11943:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11916:43:7"},"src":"11868:92:7"},{"documentation":{"id":839,"nodeType":"StructuredDocumentation","src":"11966:60:7","text":" @notice Thrown when the signer is invalid"},"errorSelector":"f7804ff9","id":841,"name":"RecurringCollectorInvalidSigner","nameLocation":"12037:31:7","nodeType":"ErrorDefinition","parameters":{"id":840,"nodeType":"ParameterList","parameters":[],"src":"12068:2:7"},"src":"12031:40:7"},{"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"12077:132:7","text":" @notice Thrown when the payment type is not IndexingFee\n @param invalidPaymentType The invalid payment type"},"errorSelector":"08966248","id":847,"name":"RecurringCollectorInvalidPaymentType","nameLocation":"12220:36:7","nodeType":"ErrorDefinition","parameters":{"id":846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":845,"mutability":"mutable","name":"invalidPaymentType","nameLocation":"12285:18:7","nodeType":"VariableDeclaration","scope":847,"src":"12257:46:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":844,"nodeType":"UserDefinedTypeName","pathNode":{"id":843,"name":"IGraphPayments.PaymentTypes","nameLocations":["12257:14:7","12272:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"12257:27:7"},"referencedDeclaration":299,"src":"12257:27:7","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"}],"src":"12256:48:7"},"src":"12214:91:7"},{"documentation":{"id":848,"nodeType":"StructuredDocumentation","src":"12311:212:7","text":" @notice Thrown when the caller is not the data service the RCA was issued to\n @param unauthorizedCaller The address of the caller\n @param dataService The address of the data service"},"errorSelector":"66925f97","id":854,"name":"RecurringCollectorUnauthorizedCaller","nameLocation":"12534:36:7","nodeType":"ErrorDefinition","parameters":{"id":853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":850,"mutability":"mutable","name":"unauthorizedCaller","nameLocation":"12579:18:7","nodeType":"VariableDeclaration","scope":854,"src":"12571:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":849,"name":"address","nodeType":"ElementaryTypeName","src":"12571:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":852,"mutability":"mutable","name":"dataService","nameLocation":"12607:11:7","nodeType":"VariableDeclaration","scope":854,"src":"12599:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":851,"name":"address","nodeType":"ElementaryTypeName","src":"12599:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12570:49:7"},"src":"12528:92:7"},{"documentation":{"id":855,"nodeType":"StructuredDocumentation","src":"12626:117:7","text":" @notice Thrown when calling collect() with invalid data\n @param invalidData The invalid data"},"errorSelector":"b0b5e2f4","id":859,"name":"RecurringCollectorInvalidCollectData","nameLocation":"12754:36:7","nodeType":"ErrorDefinition","parameters":{"id":858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"invalidData","nameLocation":"12797:11:7","nodeType":"VariableDeclaration","scope":859,"src":"12791:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":856,"name":"bytes","nodeType":"ElementaryTypeName","src":"12791:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12790:19:7"},"src":"12748:62:7"},{"documentation":{"id":860,"nodeType":"StructuredDocumentation","src":"12816:188:7","text":" @notice Thrown when interacting with an agreement that has an incorrect state\n @param agreementId The agreement ID\n @param incorrectState The incorrect state"},"errorSelector":"58312250","id":867,"name":"RecurringCollectorAgreementIncorrectState","nameLocation":"13015:41:7","nodeType":"ErrorDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":862,"mutability":"mutable","name":"agreementId","nameLocation":"13065:11:7","nodeType":"VariableDeclaration","scope":867,"src":"13057:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":861,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13057:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":865,"mutability":"mutable","name":"incorrectState","nameLocation":"13093:14:7","nodeType":"VariableDeclaration","scope":867,"src":"13078:29:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"typeName":{"id":864,"nodeType":"UserDefinedTypeName","pathNode":{"id":863,"name":"AgreementState","nameLocations":["13078:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":625,"src":"13078:14:7"},"referencedDeclaration":625,"src":"13078:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"visibility":"internal"}],"src":"13056:52:7"},"src":"13009:100:7"},{"documentation":{"id":868,"nodeType":"StructuredDocumentation","src":"13115:182:7","text":" @notice Thrown when an agreement is not collectable\n @param agreementId The agreement ID\n @param reason The reason why the agreement is not collectable"},"errorSelector":"43cdf41f","id":875,"name":"RecurringCollectorAgreementNotCollectable","nameLocation":"13308:41:7","nodeType":"ErrorDefinition","parameters":{"id":874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":870,"mutability":"mutable","name":"agreementId","nameLocation":"13358:11:7","nodeType":"VariableDeclaration","scope":875,"src":"13350:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":869,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13350:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":873,"mutability":"mutable","name":"reason","nameLocation":"13401:6:7","nodeType":"VariableDeclaration","scope":875,"src":"13371:36:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementNotCollectableReason_$636","typeString":"enum IRecurringCollector.AgreementNotCollectableReason"},"typeName":{"id":872,"nodeType":"UserDefinedTypeName","pathNode":{"id":871,"name":"AgreementNotCollectableReason","nameLocations":["13371:29:7"],"nodeType":"IdentifierPath","referencedDeclaration":636,"src":"13371:29:7"},"referencedDeclaration":636,"src":"13371:29:7","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementNotCollectableReason_$636","typeString":"enum IRecurringCollector.AgreementNotCollectableReason"}},"visibility":"internal"}],"src":"13349:59:7"},"src":"13302:107:7"},{"documentation":{"id":876,"nodeType":"StructuredDocumentation","src":"13415:93:7","text":" @notice Thrown when accepting an agreement with an address that is not set"},"errorSelector":"dc574489","id":878,"name":"RecurringCollectorAgreementAddressNotSet","nameLocation":"13519:40:7","nodeType":"ErrorDefinition","parameters":{"id":877,"nodeType":"ParameterList","parameters":[],"src":"13559:2:7"},"src":"13513:49:7"},{"documentation":{"id":879,"nodeType":"StructuredDocumentation","src":"13568:199:7","text":" @notice Thrown when accepting or upgrading an agreement with an elapsed endsAt\n @param currentTimestamp The current timestamp\n @param endsAt The agreement end timestamp"},"errorSelector":"cc68d83c","id":885,"name":"RecurringCollectorAgreementElapsedEndsAt","nameLocation":"13778:40:7","nodeType":"ErrorDefinition","parameters":{"id":884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":881,"mutability":"mutable","name":"currentTimestamp","nameLocation":"13827:16:7","nodeType":"VariableDeclaration","scope":885,"src":"13819:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":880,"name":"uint256","nodeType":"ElementaryTypeName","src":"13819:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":883,"mutability":"mutable","name":"endsAt","nameLocation":"13852:6:7","nodeType":"VariableDeclaration","scope":885,"src":"13845:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":882,"name":"uint64","nodeType":"ElementaryTypeName","src":"13845:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13818:41:7"},"src":"13772:88:7"},{"documentation":{"id":886,"nodeType":"StructuredDocumentation","src":"13866:322:7","text":" @notice Thrown when accepting or upgrading an agreement with an elapsed endsAt\n @param allowedMinCollectionWindow The allowed minimum collection window\n @param minSecondsPerCollection The minimum seconds per collection\n @param maxSecondsPerCollection The maximum seconds per collection"},"errorSelector":"e4576396","id":894,"name":"RecurringCollectorAgreementInvalidCollectionWindow","nameLocation":"14199:50:7","nodeType":"ErrorDefinition","parameters":{"id":893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":888,"mutability":"mutable","name":"allowedMinCollectionWindow","nameLocation":"14266:26:7","nodeType":"VariableDeclaration","scope":894,"src":"14259:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":887,"name":"uint32","nodeType":"ElementaryTypeName","src":"14259:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":890,"mutability":"mutable","name":"minSecondsPerCollection","nameLocation":"14309:23:7","nodeType":"VariableDeclaration","scope":894,"src":"14302:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":889,"name":"uint32","nodeType":"ElementaryTypeName","src":"14302:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":892,"mutability":"mutable","name":"maxSecondsPerCollection","nameLocation":"14349:23:7","nodeType":"VariableDeclaration","scope":894,"src":"14342:30:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":891,"name":"uint32","nodeType":"ElementaryTypeName","src":"14342:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"14249:129:7"},"src":"14193:186:7"},{"documentation":{"id":895,"nodeType":"StructuredDocumentation","src":"14385:214:7","text":" @notice Thrown when accepting or upgrading an agreement with an invalid duration\n @param requiredMinDuration The required minimum duration\n @param invalidDuration The invalid duration"},"errorSelector":"a83f9254","id":901,"name":"RecurringCollectorAgreementInvalidDuration","nameLocation":"14610:42:7","nodeType":"ErrorDefinition","parameters":{"id":900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":897,"mutability":"mutable","name":"requiredMinDuration","nameLocation":"14660:19:7","nodeType":"VariableDeclaration","scope":901,"src":"14653:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":896,"name":"uint32","nodeType":"ElementaryTypeName","src":"14653:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":899,"mutability":"mutable","name":"invalidDuration","nameLocation":"14689:15:7","nodeType":"VariableDeclaration","scope":901,"src":"14681:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":898,"name":"uint256","nodeType":"ElementaryTypeName","src":"14681:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14652:53:7"},"src":"14604:102:7"},{"documentation":{"id":902,"nodeType":"StructuredDocumentation","src":"14712:269:7","text":" @notice Thrown when calling collect() with a zero collection seconds\n @param agreementId The agreement ID\n @param currentTimestamp The current timestamp\n @param lastCollectionAt The timestamp when the last collection was done"},"errorSelector":"e3bcfc66","id":910,"name":"RecurringCollectorZeroCollectionSeconds","nameLocation":"14992:39:7","nodeType":"ErrorDefinition","parameters":{"id":909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":904,"mutability":"mutable","name":"agreementId","nameLocation":"15049:11:7","nodeType":"VariableDeclaration","scope":910,"src":"15041:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":903,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15041:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":906,"mutability":"mutable","name":"currentTimestamp","nameLocation":"15078:16:7","nodeType":"VariableDeclaration","scope":910,"src":"15070:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":905,"name":"uint256","nodeType":"ElementaryTypeName","src":"15070:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":908,"mutability":"mutable","name":"lastCollectionAt","nameLocation":"15111:16:7","nodeType":"VariableDeclaration","scope":910,"src":"15104:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":907,"name":"uint64","nodeType":"ElementaryTypeName","src":"15104:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15031:102:7"},"src":"14986:148:7"},{"documentation":{"id":911,"nodeType":"StructuredDocumentation","src":"15140:230:7","text":" @notice Thrown when calling collect() too soon\n @param agreementId The agreement ID\n @param secondsSinceLast Seconds since last collection\n @param minSeconds Minimum seconds between collections"},"errorSelector":"82ca181e","id":919,"name":"RecurringCollectorCollectionTooSoon","nameLocation":"15381:35:7","nodeType":"ErrorDefinition","parameters":{"id":918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":913,"mutability":"mutable","name":"agreementId","nameLocation":"15425:11:7","nodeType":"VariableDeclaration","scope":919,"src":"15417:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":912,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15417:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":915,"mutability":"mutable","name":"secondsSinceLast","nameLocation":"15445:16:7","nodeType":"VariableDeclaration","scope":919,"src":"15438:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":914,"name":"uint32","nodeType":"ElementaryTypeName","src":"15438:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":917,"mutability":"mutable","name":"minSeconds","nameLocation":"15470:10:7","nodeType":"VariableDeclaration","scope":919,"src":"15463:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":916,"name":"uint32","nodeType":"ElementaryTypeName","src":"15463:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15416:65:7"},"src":"15375:107:7"},{"documentation":{"id":920,"nodeType":"StructuredDocumentation","src":"15488:230:7","text":" @notice Thrown when calling collect() too late\n @param agreementId The agreement ID\n @param secondsSinceLast Seconds since last collection\n @param maxSeconds Maximum seconds between collections"},"errorSelector":"2bb787ec","id":928,"name":"RecurringCollectorCollectionTooLate","nameLocation":"15729:35:7","nodeType":"ErrorDefinition","parameters":{"id":927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":922,"mutability":"mutable","name":"agreementId","nameLocation":"15773:11:7","nodeType":"VariableDeclaration","scope":928,"src":"15765:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":921,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15765:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":924,"mutability":"mutable","name":"secondsSinceLast","nameLocation":"15793:16:7","nodeType":"VariableDeclaration","scope":928,"src":"15786:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":923,"name":"uint64","nodeType":"ElementaryTypeName","src":"15786:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"maxSeconds","nameLocation":"15818:10:7","nodeType":"VariableDeclaration","scope":928,"src":"15811:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":925,"name":"uint32","nodeType":"ElementaryTypeName","src":"15811:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15764:65:7"},"src":"15723:107:7"},{"documentation":{"id":929,"nodeType":"StructuredDocumentation","src":"15836:204:7","text":" @notice Thrown when calling update() with an invalid nonce\n @param agreementId The agreement ID\n @param expected The expected nonce\n @param provided The provided nonce"},"errorSelector":"2b993543","id":937,"name":"RecurringCollectorInvalidUpdateNonce","nameLocation":"16051:36:7","nodeType":"ErrorDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"agreementId","nameLocation":"16096:11:7","nodeType":"VariableDeclaration","scope":937,"src":"16088:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":930,"name":"bytes16","nodeType":"ElementaryTypeName","src":"16088:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":933,"mutability":"mutable","name":"expected","nameLocation":"16116:8:7","nodeType":"VariableDeclaration","scope":937,"src":"16109:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":932,"name":"uint32","nodeType":"ElementaryTypeName","src":"16109:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":935,"mutability":"mutable","name":"provided","nameLocation":"16133:8:7","nodeType":"VariableDeclaration","scope":937,"src":"16126:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":934,"name":"uint32","nodeType":"ElementaryTypeName","src":"16126:6:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"16087:55:7"},"src":"16045:98:7"},{"documentation":{"id":938,"nodeType":"StructuredDocumentation","src":"16149:291:7","text":" @notice Thrown when collected tokens are less than requested beyond the allowed slippage\n @param requested The amount of tokens requested to collect\n @param actual The actual amount that would be collected\n @param maxSlippage The maximum allowed slippage"},"errorSelector":"d90bb3c8","id":946,"name":"RecurringCollectorExcessiveSlippage","nameLocation":"16451:35:7","nodeType":"ErrorDefinition","parameters":{"id":945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"requested","nameLocation":"16495:9:7","nodeType":"VariableDeclaration","scope":946,"src":"16487:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":939,"name":"uint256","nodeType":"ElementaryTypeName","src":"16487:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":942,"mutability":"mutable","name":"actual","nameLocation":"16514:6:7","nodeType":"VariableDeclaration","scope":946,"src":"16506:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":941,"name":"uint256","nodeType":"ElementaryTypeName","src":"16506:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":944,"mutability":"mutable","name":"maxSlippage","nameLocation":"16530:11:7","nodeType":"VariableDeclaration","scope":946,"src":"16522:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":943,"name":"uint256","nodeType":"ElementaryTypeName","src":"16522:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:56:7"},"src":"16445:98:7"},{"documentation":{"id":947,"nodeType":"StructuredDocumentation","src":"16549:136:7","text":" @notice Thrown when the contract approver is not a contract\n @param approver The address that is not a contract"},"errorSelector":"d3b47192","id":951,"name":"RecurringCollectorApproverNotContract","nameLocation":"16696:37:7","nodeType":"ErrorDefinition","parameters":{"id":950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":949,"mutability":"mutable","name":"approver","nameLocation":"16742:8:7","nodeType":"VariableDeclaration","scope":951,"src":"16734:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":948,"name":"address","nodeType":"ElementaryTypeName","src":"16734:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16733:18:7"},"src":"16690:62:7"},{"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"16758:219:7","text":" @notice Accept an indexing agreement.\n @param signedRCA The signed Recurring Collection Agreement which is to be accepted.\n @return agreementId The deterministically generated agreement ID"},"functionSelector":"57b42421","id":960,"implemented":false,"kind":"function","modifiers":[],"name":"accept","nameLocation":"16991:6:7","nodeType":"FunctionDefinition","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":955,"mutability":"mutable","name":"signedRCA","nameLocation":"17017:9:7","nodeType":"VariableDeclaration","scope":960,"src":"16998:28:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCA"},"typeName":{"id":954,"nodeType":"UserDefinedTypeName","pathNode":{"id":953,"name":"SignedRCA","nameLocations":["16998:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":643,"src":"16998:9:7"},"referencedDeclaration":643,"src":"16998:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_storage_ptr","typeString":"struct IRecurringCollector.SignedRCA"}},"visibility":"internal"}],"src":"16997:30:7"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"agreementId","nameLocation":"17054:11:7","nodeType":"VariableDeclaration","scope":960,"src":"17046:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":957,"name":"bytes16","nodeType":"ElementaryTypeName","src":"17046:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"17045:21:7"},"scope":1076,"src":"16982:85:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"17073:459:7","text":" @notice Accept an RCA where the payer is a contract that authorizes via callback.\n @dev Caller must be the data service the RCA was issued to.\n The payer must be a contract implementing {IContractApprover.isAuthorizedAgreement}\n and must return the magic value for the RCA's EIP712 hash.\n @param rca The Recurring Collection Agreement to accept\n @return agreementId The deterministically generated agreement ID"},"functionSelector":"31283d86","id":969,"implemented":false,"kind":"function","modifiers":[],"name":"acceptUnsigned","nameLocation":"17546:14:7","nodeType":"FunctionDefinition","parameters":{"id":965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"mutability":"mutable","name":"rca","nameLocation":"17599:3:7","nodeType":"VariableDeclaration","scope":969,"src":"17561:41:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":963,"nodeType":"UserDefinedTypeName","pathNode":{"id":962,"name":"RecurringCollectionAgreement","nameLocations":["17561:28:7"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"17561:28:7"},"referencedDeclaration":667,"src":"17561:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"}],"src":"17560:43:7"},"returnParameters":{"id":968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":967,"mutability":"mutable","name":"agreementId","nameLocation":"17630:11:7","nodeType":"VariableDeclaration","scope":969,"src":"17622:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":966,"name":"bytes16","nodeType":"ElementaryTypeName","src":"17622:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"17621:21:7"},"scope":1076,"src":"17537:106:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":970,"nodeType":"StructuredDocumentation","src":"17649:162:7","text":" @notice Cancel an indexing agreement.\n @param agreementId The agreement's ID.\n @param by The party that is canceling the agreement."},"functionSelector":"1559de11","id":978,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"17825:6:7","nodeType":"FunctionDefinition","parameters":{"id":976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":972,"mutability":"mutable","name":"agreementId","nameLocation":"17840:11:7","nodeType":"VariableDeclaration","scope":978,"src":"17832:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":971,"name":"bytes16","nodeType":"ElementaryTypeName","src":"17832:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":975,"mutability":"mutable","name":"by","nameLocation":"17871:2:7","nodeType":"VariableDeclaration","scope":978,"src":"17853:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CancelAgreementBy_$630","typeString":"enum IRecurringCollector.CancelAgreementBy"},"typeName":{"id":974,"nodeType":"UserDefinedTypeName","pathNode":{"id":973,"name":"CancelAgreementBy","nameLocations":["17853:17:7"],"nodeType":"IdentifierPath","referencedDeclaration":630,"src":"17853:17:7"},"referencedDeclaration":630,"src":"17853:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_CancelAgreementBy_$630","typeString":"enum IRecurringCollector.CancelAgreementBy"}},"visibility":"internal"}],"src":"17831:43:7"},"returnParameters":{"id":977,"nodeType":"ParameterList","parameters":[],"src":"17883:0:7"},"scope":1076,"src":"17816:68:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":979,"nodeType":"StructuredDocumentation","src":"17890:154:7","text":" @notice Update an indexing agreement.\n @param signedRCAU The signed Recurring Collection Agreement Update which is to be applied."},"functionSelector":"47e035ea","id":985,"implemented":false,"kind":"function","modifiers":[],"name":"update","nameLocation":"18058:6:7","nodeType":"FunctionDefinition","parameters":{"id":983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":982,"mutability":"mutable","name":"signedRCAU","nameLocation":"18085:10:7","nodeType":"VariableDeclaration","scope":985,"src":"18065:30:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCAU"},"typeName":{"id":981,"nodeType":"UserDefinedTypeName","pathNode":{"id":980,"name":"SignedRCAU","nameLocations":["18065:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":674,"src":"18065:10:7"},"referencedDeclaration":674,"src":"18065:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_storage_ptr","typeString":"struct IRecurringCollector.SignedRCAU"}},"visibility":"internal"}],"src":"18064:32:7"},"returnParameters":{"id":984,"nodeType":"ParameterList","parameters":[],"src":"18105:0:7"},"scope":1076,"src":"18049:57:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":986,"nodeType":"StructuredDocumentation","src":"18112:430:7","text":" @notice Update an agreement where the payer is a contract that authorizes via callback.\n @dev Caller must be the data service for the agreement.\n The payer (stored in the agreement) must be a contract implementing\n {IContractApprover.isAuthorizedAgreement} and must return the magic value\n for the RCAU's EIP712 hash.\n @param rcau The Recurring Collection Agreement Update to apply"},"functionSelector":"3574a167","id":992,"implemented":false,"kind":"function","modifiers":[],"name":"updateUnsigned","nameLocation":"18556:14:7","nodeType":"FunctionDefinition","parameters":{"id":990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":989,"mutability":"mutable","name":"rcau","nameLocation":"18615:4:7","nodeType":"VariableDeclaration","scope":992,"src":"18571:48:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":988,"nodeType":"UserDefinedTypeName","pathNode":{"id":987,"name":"RecurringCollectionAgreementUpdate","nameLocations":["18571:34:7"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"18571:34:7"},"referencedDeclaration":694,"src":"18571:34:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"}],"src":"18570:50:7"},"returnParameters":{"id":991,"nodeType":"ParameterList","parameters":[],"src":"18629:0:7"},"scope":1076,"src":"18547:83:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":993,"nodeType":"StructuredDocumentation","src":"18636:178:7","text":" @notice Computes the hash of a RecurringCollectionAgreement (RCA).\n @param rca The RCA for which to compute the hash.\n @return The hash of the RCA."},"functionSelector":"8b1d9fc8","id":1001,"implemented":false,"kind":"function","modifiers":[],"name":"hashRCA","nameLocation":"18828:7:7","nodeType":"FunctionDefinition","parameters":{"id":997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":996,"mutability":"mutable","name":"rca","nameLocation":"18874:3:7","nodeType":"VariableDeclaration","scope":1001,"src":"18836:41:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":995,"nodeType":"UserDefinedTypeName","pathNode":{"id":994,"name":"RecurringCollectionAgreement","nameLocations":["18836:28:7"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"18836:28:7"},"referencedDeclaration":667,"src":"18836:28:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"}],"src":"18835:43:7"},"returnParameters":{"id":1000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1001,"src":"18902:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18902:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18901:9:7"},"scope":1076,"src":"18819:92:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1002,"nodeType":"StructuredDocumentation","src":"18917:188:7","text":" @notice Computes the hash of a RecurringCollectionAgreementUpdate (RCAU).\n @param rcau The RCAU for which to compute the hash.\n @return The hash of the RCAU."},"functionSelector":"4b7827df","id":1010,"implemented":false,"kind":"function","modifiers":[],"name":"hashRCAU","nameLocation":"19119:8:7","nodeType":"FunctionDefinition","parameters":{"id":1006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1005,"mutability":"mutable","name":"rcau","nameLocation":"19172:4:7","nodeType":"VariableDeclaration","scope":1010,"src":"19128:48:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":1004,"nodeType":"UserDefinedTypeName","pathNode":{"id":1003,"name":"RecurringCollectionAgreementUpdate","nameLocations":["19128:34:7"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"19128:34:7"},"referencedDeclaration":694,"src":"19128:34:7","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"}],"src":"19127:50:7"},"returnParameters":{"id":1009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1010,"src":"19201:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19201:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19200:9:7"},"scope":1076,"src":"19110:100:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1011,"nodeType":"StructuredDocumentation","src":"19216:220:7","text":" @notice Recovers the signer address of a signed RecurringCollectionAgreement (RCA).\n @param signedRCA The SignedRCA containing the RCA and its signature.\n @return The address of the signer."},"functionSelector":"a0ece47f","id":1019,"implemented":false,"kind":"function","modifiers":[],"name":"recoverRCASigner","nameLocation":"19450:16:7","nodeType":"FunctionDefinition","parameters":{"id":1015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1014,"mutability":"mutable","name":"signedRCA","nameLocation":"19486:9:7","nodeType":"VariableDeclaration","scope":1019,"src":"19467:28:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCA"},"typeName":{"id":1013,"nodeType":"UserDefinedTypeName","pathNode":{"id":1012,"name":"SignedRCA","nameLocations":["19467:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":643,"src":"19467:9:7"},"referencedDeclaration":643,"src":"19467:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_storage_ptr","typeString":"struct IRecurringCollector.SignedRCA"}},"visibility":"internal"}],"src":"19466:30:7"},"returnParameters":{"id":1018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1019,"src":"19520:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1016,"name":"address","nodeType":"ElementaryTypeName","src":"19520:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19519:9:7"},"scope":1076,"src":"19441:88:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1020,"nodeType":"StructuredDocumentation","src":"19535:230:7","text":" @notice Recovers the signer address of a signed RecurringCollectionAgreementUpdate (RCAU).\n @param signedRCAU The SignedRCAU containing the RCAU and its signature.\n @return The address of the signer."},"functionSelector":"a5144658","id":1028,"implemented":false,"kind":"function","modifiers":[],"name":"recoverRCAUSigner","nameLocation":"19779:17:7","nodeType":"FunctionDefinition","parameters":{"id":1024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1023,"mutability":"mutable","name":"signedRCAU","nameLocation":"19817:10:7","nodeType":"VariableDeclaration","scope":1028,"src":"19797:30:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCAU"},"typeName":{"id":1022,"nodeType":"UserDefinedTypeName","pathNode":{"id":1021,"name":"SignedRCAU","nameLocations":["19797:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":674,"src":"19797:10:7"},"referencedDeclaration":674,"src":"19797:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_storage_ptr","typeString":"struct IRecurringCollector.SignedRCAU"}},"visibility":"internal"}],"src":"19796:32:7"},"returnParameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1028,"src":"19852:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1025,"name":"address","nodeType":"ElementaryTypeName","src":"19852:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19851:9:7"},"scope":1076,"src":"19770:91:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1029,"nodeType":"StructuredDocumentation","src":"19867:181:7","text":" @notice Gets an agreement.\n @param agreementId The ID of the agreement to retrieve.\n @return The AgreementData struct containing the agreement's data."},"functionSelector":"ffb96119","id":1037,"implemented":false,"kind":"function","modifiers":[],"name":"getAgreement","nameLocation":"20062:12:7","nodeType":"FunctionDefinition","parameters":{"id":1032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1031,"mutability":"mutable","name":"agreementId","nameLocation":"20083:11:7","nodeType":"VariableDeclaration","scope":1037,"src":"20075:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1030,"name":"bytes16","nodeType":"ElementaryTypeName","src":"20075:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"20074:21:7"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1037,"src":"20119:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":1034,"nodeType":"UserDefinedTypeName","pathNode":{"id":1033,"name":"AgreementData","nameLocations":["20119:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"20119:13:7"},"referencedDeclaration":723,"src":"20119:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"src":"20118:22:7"},"scope":1076,"src":"20053:88:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1038,"nodeType":"StructuredDocumentation","src":"20147:520:7","text":" @notice Get the maximum tokens collectable in the next collection for an agreement.\n @dev Computes the worst-case (maximum possible) claim amount based on current on-chain\n agreement state. For active agreements, uses `endsAt` as the upper bound (not block.timestamp).\n Returns 0 for NotAccepted, CanceledByServiceProvider, or fully expired agreements.\n @param agreementId The ID of the agreement\n @return The maximum tokens that could be collected in the next collection"},"functionSelector":"b6cd33a7","id":1045,"implemented":false,"kind":"function","modifiers":[],"name":"getMaxNextClaim","nameLocation":"20681:15:7","nodeType":"FunctionDefinition","parameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"agreementId","nameLocation":"20705:11:7","nodeType":"VariableDeclaration","scope":1045,"src":"20697:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1039,"name":"bytes16","nodeType":"ElementaryTypeName","src":"20697:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"20696:21:7"},"returnParameters":{"id":1044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1045,"src":"20741:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1042,"name":"uint256","nodeType":"ElementaryTypeName","src":"20741:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20740:9:7"},"scope":1076,"src":"20672:78:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1046,"nodeType":"StructuredDocumentation","src":"20756:465:7","text":" @notice Get collection info for an agreement\n @param agreement The agreement data\n @return isCollectable Whether the agreement is in a valid state that allows collection attempts,\n not that there are necessarily funds available to collect.\n @return collectionSeconds The valid collection duration in seconds (0 if not collectable)\n @return reason The reason why the agreement is not collectable (None if collectable)"},"functionSelector":"a9dafcb9","id":1059,"implemented":false,"kind":"function","modifiers":[],"name":"getCollectionInfo","nameLocation":"21235:17:7","nodeType":"FunctionDefinition","parameters":{"id":1050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1049,"mutability":"mutable","name":"agreement","nameLocation":"21285:9:7","nodeType":"VariableDeclaration","scope":1059,"src":"21262:32:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_calldata_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":1048,"nodeType":"UserDefinedTypeName","pathNode":{"id":1047,"name":"AgreementData","nameLocations":["21262:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"21262:13:7"},"referencedDeclaration":723,"src":"21262:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"src":"21252:48:7"},"returnParameters":{"id":1058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1052,"mutability":"mutable","name":"isCollectable","nameLocation":"21329:13:7","nodeType":"VariableDeclaration","scope":1059,"src":"21324:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1051,"name":"bool","nodeType":"ElementaryTypeName","src":"21324:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1054,"mutability":"mutable","name":"collectionSeconds","nameLocation":"21352:17:7","nodeType":"VariableDeclaration","scope":1059,"src":"21344:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1053,"name":"uint256","nodeType":"ElementaryTypeName","src":"21344:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1057,"mutability":"mutable","name":"reason","nameLocation":"21401:6:7","nodeType":"VariableDeclaration","scope":1059,"src":"21371:36:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementNotCollectableReason_$636","typeString":"enum IRecurringCollector.AgreementNotCollectableReason"},"typeName":{"id":1056,"nodeType":"UserDefinedTypeName","pathNode":{"id":1055,"name":"AgreementNotCollectableReason","nameLocations":["21371:29:7"],"nodeType":"IdentifierPath","referencedDeclaration":636,"src":"21371:29:7"},"referencedDeclaration":636,"src":"21371:29:7","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementNotCollectableReason_$636","typeString":"enum IRecurringCollector.AgreementNotCollectableReason"}},"visibility":"internal"}],"src":"21323:85:7"},"scope":1076,"src":"21226:183:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1060,"nodeType":"StructuredDocumentation","src":"21415:456:7","text":" @notice Generate a deterministic agreement ID from agreement parameters\n @param payer The address of the payer\n @param dataService The address of the data service\n @param serviceProvider The address of the service provider\n @param deadline The deadline for accepting the agreement\n @param nonce A unique nonce for preventing collisions\n @return agreementId The deterministically generated agreement ID"},"functionSelector":"e1e9b475","id":1075,"implemented":false,"kind":"function","modifiers":[],"name":"generateAgreementId","nameLocation":"21885:19:7","nodeType":"FunctionDefinition","parameters":{"id":1071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1062,"mutability":"mutable","name":"payer","nameLocation":"21922:5:7","nodeType":"VariableDeclaration","scope":1075,"src":"21914:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1061,"name":"address","nodeType":"ElementaryTypeName","src":"21914:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1064,"mutability":"mutable","name":"dataService","nameLocation":"21945:11:7","nodeType":"VariableDeclaration","scope":1075,"src":"21937:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1063,"name":"address","nodeType":"ElementaryTypeName","src":"21937:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1066,"mutability":"mutable","name":"serviceProvider","nameLocation":"21974:15:7","nodeType":"VariableDeclaration","scope":1075,"src":"21966:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1065,"name":"address","nodeType":"ElementaryTypeName","src":"21966:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1068,"mutability":"mutable","name":"deadline","nameLocation":"22006:8:7","nodeType":"VariableDeclaration","scope":1075,"src":"21999:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1067,"name":"uint64","nodeType":"ElementaryTypeName","src":"21999:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1070,"mutability":"mutable","name":"nonce","nameLocation":"22032:5:7","nodeType":"VariableDeclaration","scope":1075,"src":"22024:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1069,"name":"uint256","nodeType":"ElementaryTypeName","src":"22024:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21904:139:7"},"returnParameters":{"id":1074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1073,"mutability":"mutable","name":"agreementId","nameLocation":"22075:11:7","nodeType":"VariableDeclaration","scope":1075,"src":"22067:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1072,"name":"bytes16","nodeType":"ElementaryTypeName","src":"22067:7:7","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"22066:21:7"},"scope":1076,"src":"21876:212:7","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":1077,"src":"541:21549:7","usedErrors":[197,204,207,214,219,226,819,826,831,838,841,847,854,859,867,875,878,885,894,901,910,919,928,937,946,951],"usedEvents":[163,172,181,188,382,760,776,799,816]}],"src":"45:22046:7"},"id":7},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol","exportedSymbols":{"IIndexingAgreementManager":[1338],"IRecurringCollector":[1076]},"id":1339,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1078,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:8"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol","file":"../../horizon/IRecurringCollector.sol","id":1080,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1339,"sourceUnit":1077,"src":"71:76:8","symbolAliases":[{"foreign":{"id":1079,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"80:19:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIndexingAgreementManager","contractDependencies":[],"contractKind":"interface","documentation":{"id":1081,"nodeType":"StructuredDocumentation","src":"149:635:8","text":" @title Interface for the {IndexingAgreementManager} contract\n @author Edge & Node\n @notice Manages escrow funding for RCAs (Recurring Collection Agreements) using\n issuance-allocated tokens. Tracks the maximum possible next claim for each managed\n RCA per indexer and ensures PaymentsEscrow is always funded to cover those maximums.\n One escrow per (IndexingAgreementManager, RecurringCollector, indexer) covering all RCAs for\n that indexer managed by this contract.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":1338,"linearizedBaseContracts":[1338],"name":"IIndexingAgreementManager","nameLocation":"795:25:8","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IIndexingAgreementManager.AgreementInfo","documentation":{"id":1082,"nodeType":"StructuredDocumentation","src":"849:822:8","text":" @notice Tracked state for a managed agreement\n @param indexer The service provider (indexer) for this agreement\n @param deadline The RCA deadline for acceptance (used to detect expired offers)\n @param exists Whether this agreement is actively tracked\n @param dataService The data service address for this agreement\n @param pendingUpdateNonce The RCAU nonce for the pending update (0 means no pending)\n @param maxNextClaim The current maximum tokens claimable in the next collection\n @param pendingUpdateMaxNextClaim Max next claim for an offered-but-not-yet-applied update\n @param agreementHash The RCA hash stored for cleanup of authorizedHashes on deletion\n @param pendingUpdateHash The RCAU hash stored for cleanup of authorizedHashes on deletion"},"id":1101,"members":[{"constant":false,"id":1084,"mutability":"mutable","name":"indexer","nameLocation":"1715:7:8","nodeType":"VariableDeclaration","scope":1101,"src":"1707:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1086,"mutability":"mutable","name":"deadline","nameLocation":"1739:8:8","nodeType":"VariableDeclaration","scope":1101,"src":"1732:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1085,"name":"uint64","nodeType":"ElementaryTypeName","src":"1732:6:8","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1088,"mutability":"mutable","name":"exists","nameLocation":"1762:6:8","nodeType":"VariableDeclaration","scope":1101,"src":"1757:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1087,"name":"bool","nodeType":"ElementaryTypeName","src":"1757:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1090,"mutability":"mutable","name":"dataService","nameLocation":"1786:11:8","nodeType":"VariableDeclaration","scope":1101,"src":"1778:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"1778:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1092,"mutability":"mutable","name":"pendingUpdateNonce","nameLocation":"1814:18:8","nodeType":"VariableDeclaration","scope":1101,"src":"1807:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1091,"name":"uint32","nodeType":"ElementaryTypeName","src":"1807:6:8","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1094,"mutability":"mutable","name":"maxNextClaim","nameLocation":"1850:12:8","nodeType":"VariableDeclaration","scope":1101,"src":"1842:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1093,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1096,"mutability":"mutable","name":"pendingUpdateMaxNextClaim","nameLocation":"1880:25:8","nodeType":"VariableDeclaration","scope":1101,"src":"1872:33:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"agreementHash","nameLocation":"1923:13:8","nodeType":"VariableDeclaration","scope":1101,"src":"1915:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1915:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"pendingUpdateHash","nameLocation":"1954:17:8","nodeType":"VariableDeclaration","scope":1101,"src":"1946:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1946:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"AgreementInfo","nameLocation":"1683:13:8","nodeType":"StructDefinition","scope":1338,"src":"1676:302:8","visibility":"public"},{"anonymous":false,"documentation":{"id":1102,"nodeType":"StructuredDocumentation","src":"2047:282:8","text":" @notice Emitted when an agreement is offered for escrow management\n @param agreementId The deterministic agreement ID\n @param indexer The indexer (service provider) for this agreement\n @param maxNextClaim The calculated maximum next claim amount"},"eventSelector":"259739c18c8e83f3e1c8b4c6e33f610b34846e32f2decfbf4f90b950e8d9d36b","id":1110,"name":"AgreementOffered","nameLocation":"2340:16:8","nodeType":"EventDefinition","parameters":{"id":1109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"2373:11:8","nodeType":"VariableDeclaration","scope":1110,"src":"2357:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1103,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2357:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1106,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"2402:7:8","nodeType":"VariableDeclaration","scope":1110,"src":"2386:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"2386:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1108,"indexed":false,"mutability":"mutable","name":"maxNextClaim","nameLocation":"2419:12:8","nodeType":"VariableDeclaration","scope":1110,"src":"2411:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2411:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2356:76:8"},"src":"2334:99:8"},{"anonymous":false,"documentation":{"id":1111,"nodeType":"StructuredDocumentation","src":"2439:198:8","text":" @notice Emitted when an agreement offer is revoked before acceptance\n @param agreementId The agreement ID\n @param indexer The indexer whose required escrow was reduced"},"eventSelector":"570eed002bce0bf86c1e1b74f6a8ade057760189a0747bbe89c97ab64794dce8","id":1117,"name":"OfferRevoked","nameLocation":"2648:12:8","nodeType":"EventDefinition","parameters":{"id":1116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"2677:11:8","nodeType":"VariableDeclaration","scope":1117,"src":"2661:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1112,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2661:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1115,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"2706:7:8","nodeType":"VariableDeclaration","scope":1117,"src":"2690:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1114,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2660:54:8"},"src":"2642:73:8"},{"anonymous":false,"documentation":{"id":1118,"nodeType":"StructuredDocumentation","src":"2721:181:8","text":" @notice Emitted when an agreement is canceled via the data service\n @param agreementId The agreement ID\n @param indexer The indexer for this agreement"},"eventSelector":"8d1e8d6c67fdf03cb558b5b15ebfac9259fe187a4e9fd980ba7be16ad413e8b5","id":1124,"name":"AgreementCanceled","nameLocation":"2913:17:8","nodeType":"EventDefinition","parameters":{"id":1123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1120,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"2947:11:8","nodeType":"VariableDeclaration","scope":1124,"src":"2931:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1119,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2931:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1122,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"2976:7:8","nodeType":"VariableDeclaration","scope":1124,"src":"2960:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1121,"name":"address","nodeType":"ElementaryTypeName","src":"2960:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2930:54:8"},"src":"2907:78:8"},{"anonymous":false,"documentation":{"id":1125,"nodeType":"StructuredDocumentation","src":"2991:211:8","text":" @notice Emitted when an agreement is removed from escrow management\n @param agreementId The agreement ID being removed\n @param indexer The indexer whose required escrow was reduced"},"eventSelector":"370620d8b2b6b19922292127954be721558200b2233a982111ab5eac961dcd1e","id":1131,"name":"AgreementRemoved","nameLocation":"3213:16:8","nodeType":"EventDefinition","parameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1127,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"3246:11:8","nodeType":"VariableDeclaration","scope":1131,"src":"3230:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1126,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3230:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1129,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"3275:7:8","nodeType":"VariableDeclaration","scope":1131,"src":"3259:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1128,"name":"address","nodeType":"ElementaryTypeName","src":"3259:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3229:54:8"},"src":"3207:77:8"},{"anonymous":false,"documentation":{"id":1132,"nodeType":"StructuredDocumentation","src":"3290:243:8","text":" @notice Emitted when an agreement's max next claim is recalculated\n @param agreementId The agreement ID\n @param oldMaxNextClaim The previous max next claim\n @param newMaxNextClaim The updated max next claim"},"eventSelector":"09645923a9d076af2798e345c9e427afd40e7679993c496d420ee25a9a891406","id":1140,"name":"AgreementReconciled","nameLocation":"3544:19:8","nodeType":"EventDefinition","parameters":{"id":1139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1134,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"3580:11:8","nodeType":"VariableDeclaration","scope":1140,"src":"3564:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1133,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3564:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1136,"indexed":false,"mutability":"mutable","name":"oldMaxNextClaim","nameLocation":"3601:15:8","nodeType":"VariableDeclaration","scope":1140,"src":"3593:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1135,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1138,"indexed":false,"mutability":"mutable","name":"newMaxNextClaim","nameLocation":"3626:15:8","nodeType":"VariableDeclaration","scope":1140,"src":"3618:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3618:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3563:79:8"},"src":"3538:105:8"},{"anonymous":false,"documentation":{"id":1141,"nodeType":"StructuredDocumentation","src":"3649:260:8","text":" @notice Emitted when a pending agreement update is offered\n @param agreementId The agreement ID\n @param pendingMaxNextClaim The max next claim for the pending update\n @param updateNonce The RCAU nonce for the pending update"},"eventSelector":"3d2ef8c85debab05fdf59ff23a2b0f231ce3544dd7b82d08dbeaf5367c7a5ae7","id":1149,"name":"AgreementUpdateOffered","nameLocation":"3920:22:8","nodeType":"EventDefinition","parameters":{"id":1148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"indexed":true,"mutability":"mutable","name":"agreementId","nameLocation":"3959:11:8","nodeType":"VariableDeclaration","scope":1149,"src":"3943:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1142,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3943:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1145,"indexed":false,"mutability":"mutable","name":"pendingMaxNextClaim","nameLocation":"3980:19:8","nodeType":"VariableDeclaration","scope":1149,"src":"3972:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1144,"name":"uint256","nodeType":"ElementaryTypeName","src":"3972:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1147,"indexed":false,"mutability":"mutable","name":"updateNonce","nameLocation":"4008:11:8","nodeType":"VariableDeclaration","scope":1149,"src":"4001:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1146,"name":"uint32","nodeType":"ElementaryTypeName","src":"4001:6:8","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"3942:78:8"},"src":"3914:107:8"},{"anonymous":false,"documentation":{"id":1150,"nodeType":"StructuredDocumentation","src":"4027:327:8","text":" @notice Emitted when escrow is funded for an indexer\n @param indexer The indexer whose escrow was funded\n @param requiredEscrow The total required escrow for the indexer\n @param currentBalance The escrow balance after funding\n @param deposited The amount deposited in this transaction"},"eventSelector":"d3f0e58aa4675ac50da832cc55494b3f7205de4eaf8f3d703da23b48105db95c","id":1160,"name":"EscrowFunded","nameLocation":"4365:12:8","nodeType":"EventDefinition","parameters":{"id":1159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1152,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"4394:7:8","nodeType":"VariableDeclaration","scope":1160,"src":"4378:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1151,"name":"address","nodeType":"ElementaryTypeName","src":"4378:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1154,"indexed":false,"mutability":"mutable","name":"requiredEscrow","nameLocation":"4411:14:8","nodeType":"VariableDeclaration","scope":1160,"src":"4403:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1153,"name":"uint256","nodeType":"ElementaryTypeName","src":"4403:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1156,"indexed":false,"mutability":"mutable","name":"currentBalance","nameLocation":"4435:14:8","nodeType":"VariableDeclaration","scope":1160,"src":"4427:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1155,"name":"uint256","nodeType":"ElementaryTypeName","src":"4427:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1158,"indexed":false,"mutability":"mutable","name":"deposited","nameLocation":"4459:9:8","nodeType":"VariableDeclaration","scope":1160,"src":"4451:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1157,"name":"uint256","nodeType":"ElementaryTypeName","src":"4451:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4377:92:8"},"src":"4359:111:8"},{"anonymous":false,"documentation":{"id":1161,"nodeType":"StructuredDocumentation","src":"4476:197:8","text":" @notice Emitted when escrow tokens are thawed for withdrawal\n @param indexer The indexer whose escrow is being thawed\n @param tokens The amount of tokens being thawed"},"eventSelector":"9bb27b15352e734811dc60e560d3862af1f1e9da5066ee6f7bc1bd880a031112","id":1167,"name":"EscrowThawed","nameLocation":"4684:12:8","nodeType":"EventDefinition","parameters":{"id":1166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"4713:7:8","nodeType":"VariableDeclaration","scope":1167,"src":"4697:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1162,"name":"address","nodeType":"ElementaryTypeName","src":"4697:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1165,"indexed":false,"mutability":"mutable","name":"tokens","nameLocation":"4730:6:8","nodeType":"VariableDeclaration","scope":1167,"src":"4722:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint256","nodeType":"ElementaryTypeName","src":"4722:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4696:41:8"},"src":"4678:60:8"},{"anonymous":false,"documentation":{"id":1168,"nodeType":"StructuredDocumentation","src":"4744:135:8","text":" @notice Emitted when thawed escrow tokens are withdrawn\n @param indexer The indexer whose escrow was withdrawn"},"eventSelector":"d900faab28619592e985fe698e5edf2e0819a9d670c3b2547afb60504aa115fb","id":1172,"name":"EscrowWithdrawn","nameLocation":"4890:15:8","nodeType":"EventDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"4922:7:8","nodeType":"VariableDeclaration","scope":1172,"src":"4906:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1169,"name":"address","nodeType":"ElementaryTypeName","src":"4906:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4905:25:8"},"src":"4884:47:8"},{"documentation":{"id":1173,"nodeType":"StructuredDocumentation","src":"5000:134:8","text":" @notice Thrown when trying to offer an agreement that is already offered\n @param agreementId The agreement ID"},"errorSelector":"75ad20e2","id":1177,"name":"IndexingAgreementManagerAgreementAlreadyOffered","nameLocation":"5145:47:8","nodeType":"ErrorDefinition","parameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"agreementId","nameLocation":"5201:11:8","nodeType":"VariableDeclaration","scope":1177,"src":"5193:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1174,"name":"bytes16","nodeType":"ElementaryTypeName","src":"5193:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"5192:21:8"},"src":"5139:75:8"},{"documentation":{"id":1178,"nodeType":"StructuredDocumentation","src":"5220:135:8","text":" @notice Thrown when trying to operate on an agreement that is not offered\n @param agreementId The agreement ID"},"errorSelector":"92c711e4","id":1182,"name":"IndexingAgreementManagerAgreementNotOffered","nameLocation":"5366:43:8","nodeType":"ErrorDefinition","parameters":{"id":1181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1180,"mutability":"mutable","name":"agreementId","nameLocation":"5418:11:8","nodeType":"VariableDeclaration","scope":1182,"src":"5410:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1179,"name":"bytes16","nodeType":"ElementaryTypeName","src":"5410:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"5409:21:8"},"src":"5360:71:8"},{"documentation":{"id":1183,"nodeType":"StructuredDocumentation","src":"5437:180:8","text":" @notice Thrown when the RCA payer is not this contract\n @param payer The payer address in the RCA\n @param expected The expected payer (this contract)"},"errorSelector":"079cbb81","id":1189,"name":"IndexingAgreementManagerPayerMismatch","nameLocation":"5628:37:8","nodeType":"ErrorDefinition","parameters":{"id":1188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"payer","nameLocation":"5674:5:8","nodeType":"VariableDeclaration","scope":1189,"src":"5666:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1184,"name":"address","nodeType":"ElementaryTypeName","src":"5666:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1187,"mutability":"mutable","name":"expected","nameLocation":"5689:8:8","nodeType":"VariableDeclaration","scope":1189,"src":"5681:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1186,"name":"address","nodeType":"ElementaryTypeName","src":"5681:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5665:33:8"},"src":"5622:77:8"},{"documentation":{"id":1190,"nodeType":"StructuredDocumentation","src":"5705:191:8","text":" @notice Thrown when trying to remove an agreement that is still claimable\n @param agreementId The agreement ID\n @param maxNextClaim The remaining max next claim"},"errorSelector":"f8339019","id":1196,"name":"IndexingAgreementManagerAgreementStillClaimable","nameLocation":"5907:47:8","nodeType":"ErrorDefinition","parameters":{"id":1195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1192,"mutability":"mutable","name":"agreementId","nameLocation":"5963:11:8","nodeType":"VariableDeclaration","scope":1196,"src":"5955:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1191,"name":"bytes16","nodeType":"ElementaryTypeName","src":"5955:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"},{"constant":false,"id":1194,"mutability":"mutable","name":"maxNextClaim","nameLocation":"5984:12:8","nodeType":"VariableDeclaration","scope":1196,"src":"5976:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1193,"name":"uint256","nodeType":"ElementaryTypeName","src":"5976:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5954:43:8"},"src":"5901:97:8"},{"documentation":{"id":1197,"nodeType":"StructuredDocumentation","src":"6004:136:8","text":" @notice Thrown when trying to revoke an agreement that is already accepted\n @param agreementId The agreement ID"},"errorSelector":"35e47ac1","id":1201,"name":"IndexingAgreementManagerAgreementAlreadyAccepted","nameLocation":"6151:48:8","nodeType":"ErrorDefinition","parameters":{"id":1200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"agreementId","nameLocation":"6208:11:8","nodeType":"VariableDeclaration","scope":1201,"src":"6200:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1198,"name":"bytes16","nodeType":"ElementaryTypeName","src":"6200:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"6199:21:8"},"src":"6145:76:8"},{"documentation":{"id":1202,"nodeType":"StructuredDocumentation","src":"6227:142:8","text":" @notice Thrown when trying to cancel an agreement that has not been accepted yet\n @param agreementId The agreement ID"},"errorSelector":"8367586a","id":1206,"name":"IndexingAgreementManagerAgreementNotAccepted","nameLocation":"6380:44:8","nodeType":"ErrorDefinition","parameters":{"id":1205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1204,"mutability":"mutable","name":"agreementId","nameLocation":"6433:11:8","nodeType":"VariableDeclaration","scope":1206,"src":"6425:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1203,"name":"bytes16","nodeType":"ElementaryTypeName","src":"6425:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"6424:21:8"},"src":"6374:72:8"},{"documentation":{"id":1207,"nodeType":"StructuredDocumentation","src":"6452:135:8","text":" @notice Thrown when an agreement hash is not authorized\n @param agreementHash The hash that was not authorized"},"errorSelector":"89a8b8bf","id":1211,"name":"IndexingAgreementManagerAgreementNotAuthorized","nameLocation":"6598:46:8","nodeType":"ErrorDefinition","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1209,"mutability":"mutable","name":"agreementHash","nameLocation":"6653:13:8","nodeType":"VariableDeclaration","scope":1211,"src":"6645:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6645:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6644:23:8"},"src":"6592:76:8"},{"documentation":{"id":1212,"nodeType":"StructuredDocumentation","src":"6674:157:8","text":" @notice Thrown when the data service address has no deployed code\n @param dataService The address that was expected to be a contract"},"errorSelector":"6d04b678","id":1216,"name":"IndexingAgreementManagerInvalidDataService","nameLocation":"6842:42:8","nodeType":"ErrorDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1214,"mutability":"mutable","name":"dataService","nameLocation":"6893:11:8","nodeType":"VariableDeclaration","scope":1216,"src":"6885:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1213,"name":"address","nodeType":"ElementaryTypeName","src":"6885:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6884:21:8"},"src":"6836:70:8"},{"documentation":{"id":1217,"nodeType":"StructuredDocumentation","src":"6912:136:8","text":" @notice Thrown when maintain is called but the indexer still has agreements\n @param indexer The indexer address"},"errorSelector":"a017a1b1","id":1221,"name":"IndexingAgreementManagerStillHasAgreements","nameLocation":"7059:42:8","nodeType":"ErrorDefinition","parameters":{"id":1220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1219,"mutability":"mutable","name":"indexer","nameLocation":"7110:7:8","nodeType":"VariableDeclaration","scope":1221,"src":"7102:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1218,"name":"address","nodeType":"ElementaryTypeName","src":"7102:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7101:17:8"},"src":"7053:66:8"},{"documentation":{"id":1222,"nodeType":"StructuredDocumentation","src":"7125:147:8","text":" @notice Thrown when an RCA has a zero-address service provider or data service\n @param field The name of the invalid field"},"errorSelector":"72367e21","id":1226,"name":"IndexingAgreementManagerInvalidRCAField","nameLocation":"7283:39:8","nodeType":"ErrorDefinition","parameters":{"id":1225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"mutability":"mutable","name":"field","nameLocation":"7330:5:8","nodeType":"VariableDeclaration","scope":1226,"src":"7323:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1223,"name":"string","nodeType":"ElementaryTypeName","src":"7323:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7322:14:8"},"src":"7277:60:8"},{"documentation":{"id":1227,"nodeType":"StructuredDocumentation","src":"7372:417:8","text":" @notice Offer an RCA for escrow management. Must be called before\n {SubgraphService.acceptUnsignedIndexingAgreement}.\n @dev Calculates max next claim from RCA parameters, stores the authorized hash\n for the {IContractApprover} callback, and funds the escrow.\n @param rca The Recurring Collection Agreement parameters\n @return agreementId The deterministic agreement ID"},"functionSelector":"1f19ce54","id":1235,"implemented":false,"kind":"function","modifiers":[],"name":"offerAgreement","nameLocation":"7803:14:8","nodeType":"FunctionDefinition","parameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1230,"mutability":"mutable","name":"rca","nameLocation":"7885:3:8","nodeType":"VariableDeclaration","scope":1235,"src":"7827:61:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":1229,"nodeType":"UserDefinedTypeName","pathNode":{"id":1228,"name":"IRecurringCollector.RecurringCollectionAgreement","nameLocations":["7827:19:8","7847:28:8"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"7827:48:8"},"referencedDeclaration":667,"src":"7827:48:8","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"}],"src":"7817:77:8"},"returnParameters":{"id":1234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1233,"mutability":"mutable","name":"agreementId","nameLocation":"7921:11:8","nodeType":"VariableDeclaration","scope":1235,"src":"7913:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1232,"name":"bytes16","nodeType":"ElementaryTypeName","src":"7913:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"7912:21:8"},"scope":1338,"src":"7794:140:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1236,"nodeType":"StructuredDocumentation","src":"7940:602:8","text":" @notice Offer a pending agreement update for escrow management. Must be called\n before {SubgraphService.updateUnsignedIndexingAgreement}.\n @dev Stores the authorized RCAU hash for the {IContractApprover} callback and\n adds the pending update's max next claim to the required escrow. Treats the\n pending update as a separate escrow entry alongside the current agreement.\n If a previous pending update exists, it is replaced.\n @param rcau The Recurring Collection Agreement Update parameters\n @return agreementId The agreement ID from the RCAU"},"functionSelector":"27cc6df1","id":1244,"implemented":false,"kind":"function","modifiers":[],"name":"offerAgreementUpdate","nameLocation":"8556:20:8","nodeType":"FunctionDefinition","parameters":{"id":1240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1239,"mutability":"mutable","name":"rcau","nameLocation":"8650:4:8","nodeType":"VariableDeclaration","scope":1244,"src":"8586:68:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":1238,"nodeType":"UserDefinedTypeName","pathNode":{"id":1237,"name":"IRecurringCollector.RecurringCollectionAgreementUpdate","nameLocations":["8586:19:8","8606:34:8"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"8586:54:8"},"referencedDeclaration":694,"src":"8586:54:8","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"}],"src":"8576:84:8"},"returnParameters":{"id":1243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1242,"mutability":"mutable","name":"agreementId","nameLocation":"8687:11:8","nodeType":"VariableDeclaration","scope":1244,"src":"8679:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1241,"name":"bytes16","nodeType":"ElementaryTypeName","src":"8679:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"8678:21:8"},"scope":1338,"src":"8547:153:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1245,"nodeType":"StructuredDocumentation","src":"8706:346:8","text":" @notice Revoke an un-accepted agreement offer. Only for agreements not yet\n accepted in RecurringCollector.\n @dev Requires OPERATOR_ROLE. Clears the agreement tracking and authorized hashes,\n freeing the reserved escrow. Any pending update is also cleared.\n @param agreementId The agreement ID to revoke"},"functionSelector":"59249b09","id":1250,"implemented":false,"kind":"function","modifiers":[],"name":"revokeOffer","nameLocation":"9066:11:8","nodeType":"FunctionDefinition","parameters":{"id":1248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1247,"mutability":"mutable","name":"agreementId","nameLocation":"9086:11:8","nodeType":"VariableDeclaration","scope":1250,"src":"9078:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1246,"name":"bytes16","nodeType":"ElementaryTypeName","src":"9078:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"9077:21:8"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[],"src":"9107:0:8"},"scope":1338,"src":"9057:51:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1251,"nodeType":"StructuredDocumentation","src":"9114:544:8","text":" @notice Cancel an accepted agreement by routing through the data service.\n @dev Requires OPERATOR_ROLE. Reads agreement state from RecurringCollector:\n - NotAccepted: reverts (use {revokeOffer} instead)\n - Accepted: cancels via the data service, then reconciles and funds escrow\n - Already canceled: idempotent — reconciles and funds escrow without re-canceling\n After cancellation, call {removeAgreement} once the collection window closes.\n @param agreementId The agreement ID to cancel"},"functionSelector":"f83118af","id":1256,"implemented":false,"kind":"function","modifiers":[],"name":"cancelAgreement","nameLocation":"9672:15:8","nodeType":"FunctionDefinition","parameters":{"id":1254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1253,"mutability":"mutable","name":"agreementId","nameLocation":"9696:11:8","nodeType":"VariableDeclaration","scope":1256,"src":"9688:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1252,"name":"bytes16","nodeType":"ElementaryTypeName","src":"9688:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"9687:21:8"},"returnParameters":{"id":1255,"nodeType":"ParameterList","parameters":[],"src":"9717:0:8"},"scope":1338,"src":"9663:55:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1257,"nodeType":"StructuredDocumentation","src":"9724:430:8","text":" @notice Remove a fully expired agreement from tracking.\n @dev Permissionless. Only succeeds when the agreement's max next claim is 0 (no more\n collections possible). This covers: CanceledByServiceProvider (immediate),\n CanceledByPayer (after window expires), active agreements past endsAt, and\n NotAccepted offers past their deadline.\n @param agreementId The agreement ID to remove"},"functionSelector":"1d1e41aa","id":1262,"implemented":false,"kind":"function","modifiers":[],"name":"removeAgreement","nameLocation":"10168:15:8","nodeType":"FunctionDefinition","parameters":{"id":1260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1259,"mutability":"mutable","name":"agreementId","nameLocation":"10192:11:8","nodeType":"VariableDeclaration","scope":1262,"src":"10184:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1258,"name":"bytes16","nodeType":"ElementaryTypeName","src":"10184:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"10183:21:8"},"returnParameters":{"id":1261,"nodeType":"ParameterList","parameters":[],"src":"10213:0:8"},"scope":1338,"src":"10159:55:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1263,"nodeType":"StructuredDocumentation","src":"10220:475:8","text":" @notice Reconcile a single agreement. Re-reads agreement state from\n RecurringCollector, recalculates max next claim, and tops up escrow.\n @dev Permissionless. This is the primary reconciliation function — gas-predictable,\n per-agreement. Skips if agreement is not yet accepted in RecurringCollector.\n Should be called after collections, cancellations, or agreement updates.\n @param agreementId The agreement ID to reconcile"},"functionSelector":"d253c4c4","id":1268,"implemented":false,"kind":"function","modifiers":[],"name":"reconcileAgreement","nameLocation":"10709:18:8","nodeType":"FunctionDefinition","parameters":{"id":1266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1265,"mutability":"mutable","name":"agreementId","nameLocation":"10736:11:8","nodeType":"VariableDeclaration","scope":1268,"src":"10728:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1264,"name":"bytes16","nodeType":"ElementaryTypeName","src":"10728:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"10727:21:8"},"returnParameters":{"id":1267,"nodeType":"ParameterList","parameters":[],"src":"10757:0:8"},"scope":1338,"src":"10700:58:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1269,"nodeType":"StructuredDocumentation","src":"10764:375:8","text":" @notice Reconcile all agreements for an indexer (convenience function).\n @dev Permissionless. Iterates all tracked agreements for the indexer — O(n) gas,\n may hit gas limits with many agreements. Prefer reconcileAgreement for individual\n updates, or reconcileBatch for controlled batching.\n @param indexer The indexer to reconcile"},"functionSelector":"09a18635","id":1274,"implemented":false,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"11153:9:8","nodeType":"FunctionDefinition","parameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"indexer","nameLocation":"11171:7:8","nodeType":"VariableDeclaration","scope":1274,"src":"11163:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1270,"name":"address","nodeType":"ElementaryTypeName","src":"11163:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11162:17:8"},"returnParameters":{"id":1273,"nodeType":"ParameterList","parameters":[],"src":"11188:0:8"},"scope":1338,"src":"11144:45:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1275,"nodeType":"StructuredDocumentation","src":"11195:286:8","text":" @notice Reconcile a batch of agreements (operator-controlled batching).\n @dev Permissionless. Allows callers to control gas usage by choosing which\n agreements to reconcile in a single transaction.\n @param agreementIds The agreement IDs to reconcile"},"functionSelector":"78ecca5f","id":1281,"implemented":false,"kind":"function","modifiers":[],"name":"reconcileBatch","nameLocation":"11495:14:8","nodeType":"FunctionDefinition","parameters":{"id":1279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1278,"mutability":"mutable","name":"agreementIds","nameLocation":"11529:12:8","nodeType":"VariableDeclaration","scope":1281,"src":"11510:31:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[]"},"typeName":{"baseType":{"id":1276,"name":"bytes16","nodeType":"ElementaryTypeName","src":"11510:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1277,"nodeType":"ArrayTypeName","src":"11510:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}},"visibility":"internal"}],"src":"11509:33:8"},"returnParameters":{"id":1280,"nodeType":"ParameterList","parameters":[],"src":"11551:0:8"},"scope":1338,"src":"11486:66:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1282,"nodeType":"StructuredDocumentation","src":"11558:462:8","text":" @notice Maintain escrow for an indexer with no remaining agreements.\n @dev Permissionless. Two-phase operation:\n - If a previous thaw has completed: withdraws tokens back to this contract\n - If escrow balance remains: initiates a thaw for the available balance\n Only operates when the indexer has zero tracked agreements. Guards against\n reducing an in-progress thaw.\n @param indexer The indexer to maintain"},"functionSelector":"037c5d7f","id":1287,"implemented":false,"kind":"function","modifiers":[],"name":"maintain","nameLocation":"12034:8:8","nodeType":"FunctionDefinition","parameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"mutability":"mutable","name":"indexer","nameLocation":"12051:7:8","nodeType":"VariableDeclaration","scope":1287,"src":"12043:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1283,"name":"address","nodeType":"ElementaryTypeName","src":"12043:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12042:17:8"},"returnParameters":{"id":1286,"nodeType":"ParameterList","parameters":[],"src":"12068:0:8"},"scope":1338,"src":"12025:44:8","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1288,"nodeType":"StructuredDocumentation","src":"12104:199:8","text":" @notice Get the total required escrow for an indexer\n @param indexer The indexer address\n @return The sum of max next claims for all managed agreements for this indexer"},"functionSelector":"e9a91276","id":1295,"implemented":false,"kind":"function","modifiers":[],"name":"getRequiredEscrow","nameLocation":"12317:17:8","nodeType":"FunctionDefinition","parameters":{"id":1291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1290,"mutability":"mutable","name":"indexer","nameLocation":"12343:7:8","nodeType":"VariableDeclaration","scope":1295,"src":"12335:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1289,"name":"address","nodeType":"ElementaryTypeName","src":"12335:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12334:17:8"},"returnParameters":{"id":1294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1295,"src":"12375:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1292,"name":"uint256","nodeType":"ElementaryTypeName","src":"12375:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12374:9:8"},"scope":1338,"src":"12308:76:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1296,"nodeType":"StructuredDocumentation","src":"12390:261:8","text":" @notice Get the current escrow deficit for an indexer\n @dev Returns 0 if escrow is fully funded or over-funded.\n @param indexer The indexer address\n @return The deficit amount (required - current balance), or 0 if no deficit"},"functionSelector":"a74558e1","id":1303,"implemented":false,"kind":"function","modifiers":[],"name":"getDeficit","nameLocation":"12665:10:8","nodeType":"FunctionDefinition","parameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1298,"mutability":"mutable","name":"indexer","nameLocation":"12684:7:8","nodeType":"VariableDeclaration","scope":1303,"src":"12676:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1297,"name":"address","nodeType":"ElementaryTypeName","src":"12676:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12675:17:8"},"returnParameters":{"id":1302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1303,"src":"12716:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1300,"name":"uint256","nodeType":"ElementaryTypeName","src":"12716:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12715:9:8"},"scope":1338,"src":"12656:69:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1304,"nodeType":"StructuredDocumentation","src":"12731:185:8","text":" @notice Get the max next claim for a specific agreement\n @param agreementId The agreement ID\n @return The current max next claim stored for this agreement"},"functionSelector":"085b3e65","id":1311,"implemented":false,"kind":"function","modifiers":[],"name":"getAgreementMaxNextClaim","nameLocation":"12930:24:8","nodeType":"FunctionDefinition","parameters":{"id":1307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"mutability":"mutable","name":"agreementId","nameLocation":"12963:11:8","nodeType":"VariableDeclaration","scope":1311,"src":"12955:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1305,"name":"bytes16","nodeType":"ElementaryTypeName","src":"12955:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"12954:21:8"},"returnParameters":{"id":1310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1311,"src":"12999:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1308,"name":"uint256","nodeType":"ElementaryTypeName","src":"12999:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12998:9:8"},"scope":1338,"src":"12921:87:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1312,"nodeType":"StructuredDocumentation","src":"13014:195:8","text":" @notice Get the full tracked state for a specific agreement\n @param agreementId The agreement ID\n @return The agreement info struct (all fields zero if not tracked)"},"functionSelector":"e9b78bc8","id":1320,"implemented":false,"kind":"function","modifiers":[],"name":"getAgreementInfo","nameLocation":"13223:16:8","nodeType":"FunctionDefinition","parameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"agreementId","nameLocation":"13248:11:8","nodeType":"VariableDeclaration","scope":1320,"src":"13240:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1313,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13240:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"13239:21:8"},"returnParameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1320,"src":"13284:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_memory_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":1317,"nodeType":"UserDefinedTypeName","pathNode":{"id":1316,"name":"AgreementInfo","nameLocations":["13284:13:8"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"13284:13:8"},"referencedDeclaration":1101,"src":"13284:13:8","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"src":"13283:22:8"},"scope":1338,"src":"13214:92:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1321,"nodeType":"StructuredDocumentation","src":"13312:167:8","text":" @notice Get the number of managed agreements for an indexer\n @param indexer The indexer address\n @return The count of tracked agreements"},"functionSelector":"f2da52c5","id":1328,"implemented":false,"kind":"function","modifiers":[],"name":"getIndexerAgreementCount","nameLocation":"13493:24:8","nodeType":"FunctionDefinition","parameters":{"id":1324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1323,"mutability":"mutable","name":"indexer","nameLocation":"13526:7:8","nodeType":"VariableDeclaration","scope":1328,"src":"13518:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1322,"name":"address","nodeType":"ElementaryTypeName","src":"13518:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13517:17:8"},"returnParameters":{"id":1327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1328,"src":"13558:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1325,"name":"uint256","nodeType":"ElementaryTypeName","src":"13558:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13557:9:8"},"scope":1338,"src":"13484:83:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1329,"nodeType":"StructuredDocumentation","src":"13573:328:8","text":" @notice Get all managed agreement IDs for an indexer\n @dev Returns the full set of tracked agreement IDs. May be expensive for indexers\n with many agreements — prefer {getIndexerAgreementCount} for on-chain use.\n @param indexer The indexer address\n @return The array of agreement IDs"},"functionSelector":"a2a58379","id":1337,"implemented":false,"kind":"function","modifiers":[],"name":"getIndexerAgreements","nameLocation":"13915:20:8","nodeType":"FunctionDefinition","parameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"mutability":"mutable","name":"indexer","nameLocation":"13944:7:8","nodeType":"VariableDeclaration","scope":1337,"src":"13936:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1330,"name":"address","nodeType":"ElementaryTypeName","src":"13936:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13935:17:8"},"returnParameters":{"id":1336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1337,"src":"13976:16:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[]"},"typeName":{"baseType":{"id":1333,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13976:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1334,"nodeType":"ArrayTypeName","src":"13976:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}},"visibility":"internal"}],"src":"13975:18:8"},"scope":1338,"src":"13906:88:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1339,"src":"785:13211:8","usedErrors":[1177,1182,1189,1196,1201,1206,1211,1216,1221,1226],"usedEvents":[1110,1117,1124,1131,1140,1149,1160,1167,1172]}],"src":"45:13952:8"},"id":8},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol","exportedSymbols":{"IIssuanceAllocationAdministration":[1469],"IIssuanceTarget":[1631],"SelfMintingEventMode":[1573]},"id":1470,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1340,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:9"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"./IIssuanceTarget.sol","id":1342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1470,"sourceUnit":1632,"src":"81:56:9","symbolAliases":[{"foreign":{"id":1341,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"90:15:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","file":"./IIssuanceAllocatorTypes.sol","id":1344,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1470,"sourceUnit":1608,"src":"138:69:9","symbolAliases":[{"foreign":{"id":1343,"name":"SelfMintingEventMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"147:20:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIssuanceAllocationAdministration","contractDependencies":[],"contractKind":"interface","documentation":{"id":1345,"nodeType":"StructuredDocumentation","src":"209:218:9","text":" @title IIssuanceAllocationAdministration\n @author Edge & Node\n @notice Interface for administrative operations on the issuance allocator.\n These functions are typically restricted to the governor role."},"fullyImplemented":false,"id":1469,"linearizedBaseContracts":[1469],"name":"IIssuanceAllocationAdministration","nameLocation":"438:33:9","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1346,"nodeType":"StructuredDocumentation","src":"478:258:9","text":" @notice Set the issuance per block.\n @param newIssuancePerBlock New issuance per block\n @return applied True if the value is applied (including if already the case)\n @dev Requires distribution to have reached block.number"},"functionSelector":"1156bdc1","id":1353,"implemented":false,"kind":"function","modifiers":[],"name":"setIssuancePerBlock","nameLocation":"750:19:9","nodeType":"FunctionDefinition","parameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"778:19:9","nodeType":"VariableDeclaration","scope":1353,"src":"770:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1347,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"769:29:9"},"returnParameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"mutability":"mutable","name":"applied","nameLocation":"822:7:9","nodeType":"VariableDeclaration","scope":1353,"src":"817:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1350,"name":"bool","nodeType":"ElementaryTypeName","src":"817:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"816:14:9"},"scope":1469,"src":"741:90:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1354,"nodeType":"StructuredDocumentation","src":"837:731:9","text":" @notice Set the issuance per block, requiring distribution has reached at least the specified block\n @param newIssuancePerBlock New issuance per block\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return applied True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock\n @dev Governance should explicitly call\n distributePendingIssuance(blockNumber) first if distribution is behind minDistributedBlock.\n @dev This allows configuration changes while paused: first call distributePendingIssuance(blockNumber),\n then call this function with the same or lower blockNumber."},"functionSelector":"c627b7a4","id":1363,"implemented":false,"kind":"function","modifiers":[],"name":"setIssuancePerBlock","nameLocation":"1582:19:9","nodeType":"FunctionDefinition","parameters":{"id":1359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1356,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"1619:19:9","nodeType":"VariableDeclaration","scope":1363,"src":"1611:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1611:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1358,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"1656:19:9","nodeType":"VariableDeclaration","scope":1363,"src":"1648:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1601:80:9"},"returnParameters":{"id":1362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1361,"mutability":"mutable","name":"applied","nameLocation":"1705:7:9","nodeType":"VariableDeclaration","scope":1363,"src":"1700:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1360,"name":"bool","nodeType":"ElementaryTypeName","src":"1700:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1699:14:9"},"scope":1469,"src":"1573:141:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1364,"nodeType":"StructuredDocumentation","src":"1720:425:9","text":" @notice Set the allocation for a target with only allocator minting\n @param target The target contract to update\n @param allocatorMintingRate Allocator-minting rate for the target (tokens per block)\n @return applied True if the value is applied (including if already the case), false if not applied\n @dev This variant sets selfMintingRate to 0 and evenIfDistributionPending to false"},"functionSelector":"443990fa","id":1374,"implemented":false,"kind":"function","modifiers":[],"name":"setTargetAllocation","nameLocation":"2159:19:9","nodeType":"FunctionDefinition","parameters":{"id":1370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"target","nameLocation":"2195:6:9","nodeType":"VariableDeclaration","scope":1374,"src":"2179:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":1366,"nodeType":"UserDefinedTypeName","pathNode":{"id":1365,"name":"IIssuanceTarget","nameLocations":["2179:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"2179:15:9"},"referencedDeclaration":1631,"src":"2179:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":1369,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"2211:20:9","nodeType":"VariableDeclaration","scope":1374,"src":"2203:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint256","nodeType":"ElementaryTypeName","src":"2203:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2178:54:9"},"returnParameters":{"id":1373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1372,"mutability":"mutable","name":"applied","nameLocation":"2256:7:9","nodeType":"VariableDeclaration","scope":1374,"src":"2251:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1371,"name":"bool","nodeType":"ElementaryTypeName","src":"2251:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2250:14:9"},"scope":1469,"src":"2150:115:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1375,"nodeType":"StructuredDocumentation","src":"2271:491:9","text":" @notice Set the allocation for a target with both allocator and self minting\n @param target The target contract to update\n @param allocatorMintingRate Allocator-minting rate for the target (tokens per block)\n @param selfMintingRate Self-minting rate for the target (tokens per block)\n @return applied True if the value is applied (including if already the case), false if not applied\n @dev This variant sets evenIfDistributionPending to false"},"functionSelector":"647b3682","id":1387,"implemented":false,"kind":"function","modifiers":[],"name":"setTargetAllocation","nameLocation":"2776:19:9","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1378,"mutability":"mutable","name":"target","nameLocation":"2821:6:9","nodeType":"VariableDeclaration","scope":1387,"src":"2805:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":1377,"nodeType":"UserDefinedTypeName","pathNode":{"id":1376,"name":"IIssuanceTarget","nameLocations":["2805:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"2805:15:9"},"referencedDeclaration":1631,"src":"2805:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":1380,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"2845:20:9","nodeType":"VariableDeclaration","scope":1387,"src":"2837:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1379,"name":"uint256","nodeType":"ElementaryTypeName","src":"2837:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1382,"mutability":"mutable","name":"selfMintingRate","nameLocation":"2883:15:9","nodeType":"VariableDeclaration","scope":1387,"src":"2875:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1381,"name":"uint256","nodeType":"ElementaryTypeName","src":"2875:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2795:109:9"},"returnParameters":{"id":1386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"mutability":"mutable","name":"applied","nameLocation":"2928:7:9","nodeType":"VariableDeclaration","scope":1387,"src":"2923:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1384,"name":"bool","nodeType":"ElementaryTypeName","src":"2923:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2922:14:9"},"scope":1469,"src":"2767:170:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1388,"nodeType":"StructuredDocumentation","src":"2943:960:9","text":" @notice Set the allocation for a target, provided distribution has reached at least the specified block\n @param target The target contract to update\n @param allocatorMintingRate Allocator-minting rate for the target (tokens per block)\n @param selfMintingRate Self-minting rate for the target (tokens per block)\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return applied True if the value is applied (including if already the case), false if distribution hasn't reached minDistributedBlock and therefore the change was not applied\n @dev Governance should explicitly call\n distributePendingIssuance(blockNumber) first if paused and not distributed up to minDistributedBlock block.\n @dev This allows configuration changes while paused: first call distributePendingIssuance(blockNumber),\n then call this function with the same or lower blockNumber."},"functionSelector":"c2cb3544","id":1402,"implemented":false,"kind":"function","modifiers":[],"name":"setTargetAllocation","nameLocation":"3917:19:9","nodeType":"FunctionDefinition","parameters":{"id":1398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"target","nameLocation":"3962:6:9","nodeType":"VariableDeclaration","scope":1402,"src":"3946:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":1390,"nodeType":"UserDefinedTypeName","pathNode":{"id":1389,"name":"IIssuanceTarget","nameLocations":["3946:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"3946:15:9"},"referencedDeclaration":1631,"src":"3946:15:9","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":1393,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"3986:20:9","nodeType":"VariableDeclaration","scope":1402,"src":"3978:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1392,"name":"uint256","nodeType":"ElementaryTypeName","src":"3978:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1395,"mutability":"mutable","name":"selfMintingRate","nameLocation":"4024:15:9","nodeType":"VariableDeclaration","scope":1402,"src":"4016:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1394,"name":"uint256","nodeType":"ElementaryTypeName","src":"4016:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1397,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"4057:19:9","nodeType":"VariableDeclaration","scope":1402,"src":"4049:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1396,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3936:146:9"},"returnParameters":{"id":1401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"mutability":"mutable","name":"applied","nameLocation":"4106:7:9","nodeType":"VariableDeclaration","scope":1402,"src":"4101:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1399,"name":"bool","nodeType":"ElementaryTypeName","src":"4101:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4100:14:9"},"scope":1469,"src":"3908:207:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1403,"nodeType":"StructuredDocumentation","src":"4121:238:9","text":" @notice Notify a specific target about an upcoming allocation change\n @param target Address of the target to notify\n @return notified True if notification was sent or already sent this block, false otherwise"},"functionSelector":"4887693c","id":1410,"implemented":false,"kind":"function","modifiers":[],"name":"notifyTarget","nameLocation":"4373:12:9","nodeType":"FunctionDefinition","parameters":{"id":1406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1405,"mutability":"mutable","name":"target","nameLocation":"4394:6:9","nodeType":"VariableDeclaration","scope":1410,"src":"4386:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1404,"name":"address","nodeType":"ElementaryTypeName","src":"4386:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4385:16:9"},"returnParameters":{"id":1409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1408,"mutability":"mutable","name":"notified","nameLocation":"4425:8:9","nodeType":"VariableDeclaration","scope":1410,"src":"4420:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1407,"name":"bool","nodeType":"ElementaryTypeName","src":"4420:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4419:15:9"},"scope":1469,"src":"4364:71:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"4441:496:9","text":" @notice Force set the lastChangeNotifiedBlock for a target to a specific block number\n @param target Address of the target to update\n @param blockNumber Block number to set as the lastChangeNotifiedBlock\n @return notificationBlock The block number that was set\n @dev This can be used to enable notification to be sent again (by setting to a past block)\n @dev or to prevent notification until a future block (by setting to current or future block)."},"functionSelector":"7c92330b","id":1420,"implemented":false,"kind":"function","modifiers":[],"name":"forceTargetNoChangeNotificationBlock","nameLocation":"4951:36:9","nodeType":"FunctionDefinition","parameters":{"id":1416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"mutability":"mutable","name":"target","nameLocation":"5005:6:9","nodeType":"VariableDeclaration","scope":1420,"src":"4997:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1412,"name":"address","nodeType":"ElementaryTypeName","src":"4997:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1415,"mutability":"mutable","name":"blockNumber","nameLocation":"5029:11:9","nodeType":"VariableDeclaration","scope":1420,"src":"5021:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1414,"name":"uint256","nodeType":"ElementaryTypeName","src":"5021:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4987:59:9"},"returnParameters":{"id":1419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"notificationBlock","nameLocation":"5073:17:9","nodeType":"VariableDeclaration","scope":1420,"src":"5065:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1417,"name":"uint256","nodeType":"ElementaryTypeName","src":"5065:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5064:27:9"},"scope":1469,"src":"4942:150:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1421,"nodeType":"StructuredDocumentation","src":"5098:234:9","text":" @notice Set the address that receives the default portion of issuance not allocated to other targets\n @param newAddress The new default target address (can be address(0))\n @return applied True if applied"},"functionSelector":"697cf322","id":1428,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultTarget","nameLocation":"5346:16:9","nodeType":"FunctionDefinition","parameters":{"id":1424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1423,"mutability":"mutable","name":"newAddress","nameLocation":"5371:10:9","nodeType":"VariableDeclaration","scope":1428,"src":"5363:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1422,"name":"address","nodeType":"ElementaryTypeName","src":"5363:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5362:20:9"},"returnParameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1426,"mutability":"mutable","name":"applied","nameLocation":"5406:7:9","nodeType":"VariableDeclaration","scope":1428,"src":"5401:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1425,"name":"bool","nodeType":"ElementaryTypeName","src":"5401:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5400:14:9"},"scope":1469,"src":"5337:78:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1429,"nodeType":"StructuredDocumentation","src":"5421:657:9","text":" @notice Set the address that receives the default portion of issuance not allocated to other targets\n @param newAddress The new default target address (can be address(0))\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return applied True if applied, false if distribution has not reached minDistributedBlock and therefore the change was not applied\n @dev Governance should explicitly call\n distributePendingIssuance(blockNumber) first if paused and distribution is not up to minDistributedBlock block.\n then call this function with the same or lower blockNumber."},"functionSelector":"d012a15b","id":1438,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultTarget","nameLocation":"6092:16:9","nodeType":"FunctionDefinition","parameters":{"id":1434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1431,"mutability":"mutable","name":"newAddress","nameLocation":"6117:10:9","nodeType":"VariableDeclaration","scope":1438,"src":"6109:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"6109:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1433,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"6137:19:9","nodeType":"VariableDeclaration","scope":1438,"src":"6129:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1432,"name":"uint256","nodeType":"ElementaryTypeName","src":"6129:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6108:49:9"},"returnParameters":{"id":1437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1436,"mutability":"mutable","name":"applied","nameLocation":"6181:7:9","nodeType":"VariableDeclaration","scope":1438,"src":"6176:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1435,"name":"bool","nodeType":"ElementaryTypeName","src":"6176:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6175:14:9"},"scope":1469,"src":"6083:107:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1439,"nodeType":"StructuredDocumentation","src":"6196:503:9","text":" @notice Distribute pending accumulated allocator-minting issuance\n @dev Distributes accumulated allocator-minting issuance using current rates\n (retroactively applied to the period from lastDistributionBlock to current block).\n Prioritizes non-default targets getting full rates; default gets remainder.\n @dev Finalizes self-minting accumulation for the period being distributed.\n @return distributedBlock Block number that issuance was distributed up to"},"functionSelector":"3af5b073","id":1444,"implemented":false,"kind":"function","modifiers":[],"name":"distributePendingIssuance","nameLocation":"6713:25:9","nodeType":"FunctionDefinition","parameters":{"id":1440,"nodeType":"ParameterList","parameters":[],"src":"6738:2:9"},"returnParameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"distributedBlock","nameLocation":"6767:16:9","nodeType":"VariableDeclaration","scope":1444,"src":"6759:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1441,"name":"uint256","nodeType":"ElementaryTypeName","src":"6759:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6758:26:9"},"scope":1469,"src":"6704:81:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1445,"nodeType":"StructuredDocumentation","src":"6791:641:9","text":" @notice Distribute pending accumulated allocator-minting issuance up to specified block\n @param toBlockNumber Block number to distribute up to (must be <= block.number and >= lastDistributionBlock)\n @dev Distributes accumulated allocator-minting issuance using current rates\n (retroactively applied to the period from lastDistributionBlock to toBlockNumber).\n Prioritizes non-default targets getting full rates; default gets remainder.\n @dev Finalizes self-minting accumulation for the period being distributed.\n @return distributedBlock Block number that issuance was distributed up to"},"functionSelector":"52c0e18c","id":1452,"implemented":false,"kind":"function","modifiers":[],"name":"distributePendingIssuance","nameLocation":"7446:25:9","nodeType":"FunctionDefinition","parameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1447,"mutability":"mutable","name":"toBlockNumber","nameLocation":"7480:13:9","nodeType":"VariableDeclaration","scope":1452,"src":"7472:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1446,"name":"uint256","nodeType":"ElementaryTypeName","src":"7472:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7471:23:9"},"returnParameters":{"id":1451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1450,"mutability":"mutable","name":"distributedBlock","nameLocation":"7521:16:9","nodeType":"VariableDeclaration","scope":1452,"src":"7513:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1449,"name":"uint256","nodeType":"ElementaryTypeName","src":"7513:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7512:26:9"},"scope":1469,"src":"7437:102:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1453,"nodeType":"StructuredDocumentation","src":"7545:563:9","text":" @notice Set the self-minting event emission mode\n @param newMode The new emission mode (None, Aggregate, or PerTarget)\n @return applied True if the mode was set (including if already set to that mode)\n @dev None: Skip event emission entirely (lowest gas)\n @dev Aggregate: Emit single aggregated event for all self-minting (medium gas)\n @dev PerTarget: Emit events for each target with self-minting (highest gas)\n @dev Self-minting targets should call getTargetIssuancePerBlock() rather than relying on events"},"functionSelector":"13a7855d","id":1461,"implemented":false,"kind":"function","modifiers":[],"name":"setSelfMintingEventMode","nameLocation":"8122:23:9","nodeType":"FunctionDefinition","parameters":{"id":1457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1456,"mutability":"mutable","name":"newMode","nameLocation":"8167:7:9","nodeType":"VariableDeclaration","scope":1461,"src":"8146:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":1455,"nodeType":"UserDefinedTypeName","pathNode":{"id":1454,"name":"SelfMintingEventMode","nameLocations":["8146:20:9"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"8146:20:9"},"referencedDeclaration":1573,"src":"8146:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"src":"8145:30:9"},"returnParameters":{"id":1460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"applied","nameLocation":"8199:7:9","nodeType":"VariableDeclaration","scope":1461,"src":"8194:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1458,"name":"bool","nodeType":"ElementaryTypeName","src":"8194:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8193:14:9"},"scope":1469,"src":"8113:95:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1462,"nodeType":"StructuredDocumentation","src":"8214:121:9","text":" @notice Get the current self-minting event emission mode\n @return mode The current emission mode"},"functionSelector":"93c911a8","id":1468,"implemented":false,"kind":"function","modifiers":[],"name":"getSelfMintingEventMode","nameLocation":"8349:23:9","nodeType":"FunctionDefinition","parameters":{"id":1463,"nodeType":"ParameterList","parameters":[],"src":"8372:2:9"},"returnParameters":{"id":1467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1466,"mutability":"mutable","name":"mode","nameLocation":"8419:4:9","nodeType":"VariableDeclaration","scope":1468,"src":"8398:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":1465,"nodeType":"UserDefinedTypeName","pathNode":{"id":1464,"name":"SelfMintingEventMode","nameLocations":["8398:20:9"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"8398:20:9"},"referencedDeclaration":1573,"src":"8398:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"src":"8397:27:9"},"scope":1469,"src":"8340:85:9","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1470,"src":"428:7999:9","usedErrors":[],"usedEvents":[]}],"src":"46:8382:9"},"id":9},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol","exportedSymbols":{"AllocationTarget":[1599],"IIssuanceAllocationData":[1485]},"id":1486,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1471,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:10"},{"id":1472,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"80:19:10"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","file":"./IIssuanceAllocatorTypes.sol","id":1474,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1486,"sourceUnit":1608,"src":"101:65:10","symbolAliases":[{"foreign":{"id":1473,"name":"AllocationTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"110:16:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIssuanceAllocationData","contractDependencies":[],"contractKind":"interface","documentation":{"id":1475,"nodeType":"StructuredDocumentation","src":"168:280:10","text":" @title IIssuanceAllocationData\n @author Edge & Node\n @notice Interface for querying issuance allocation target data\n @dev This interface provides access to internal allocation target information,\n primarily useful for operators and off-chain monitoring systems."},"fullyImplemented":false,"id":1485,"linearizedBaseContracts":[1485],"name":"IIssuanceAllocationData","nameLocation":"459:23:10","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1476,"nodeType":"StructuredDocumentation","src":"489:210:10","text":" @notice Get target data for a specific target\n @param target Address of the target\n @return AllocationTarget struct containing target information including lastChangeNotifiedBlock"},"functionSelector":"48c3c62e","id":1484,"implemented":false,"kind":"function","modifiers":[],"name":"getTargetData","nameLocation":"713:13:10","nodeType":"FunctionDefinition","parameters":{"id":1479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1478,"mutability":"mutable","name":"target","nameLocation":"735:6:10","nodeType":"VariableDeclaration","scope":1484,"src":"727:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1477,"name":"address","nodeType":"ElementaryTypeName","src":"727:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"726:16:10"},"returnParameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1484,"src":"766:23:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_memory_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":1481,"nodeType":"UserDefinedTypeName","pathNode":{"id":1480,"name":"AllocationTarget","nameLocations":["766:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"766:16:10"},"referencedDeclaration":1599,"src":"766:16:10","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"src":"765:25:10"},"scope":1485,"src":"704:87:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1486,"src":"449:344:10","usedErrors":[],"usedEvents":[]}],"src":"46:748:10"},"id":10},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol","exportedSymbols":{"IIssuanceAllocationDistribution":[1507],"TargetIssuancePerBlock":[1583]},"id":1508,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1487,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:11"},{"id":1488,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"80:19:11"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","file":"./IIssuanceAllocatorTypes.sol","id":1490,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1508,"sourceUnit":1608,"src":"101:71:11","symbolAliases":[{"foreign":{"id":1489,"name":"TargetIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"110:22:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIssuanceAllocationDistribution","contractDependencies":[],"contractKind":"interface","documentation":{"id":1491,"nodeType":"StructuredDocumentation","src":"174:245:11","text":" @title IIssuanceAllocationDistribution\n @author Edge & Node\n @notice Interface for distribution and target interaction with the issuance allocator.\n This is the minimal interface that targets need to interact with the allocator."},"fullyImplemented":false,"id":1507,"linearizedBaseContracts":[1507],"name":"IIssuanceAllocationDistribution","nameLocation":"430:31:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1492,"nodeType":"StructuredDocumentation","src":"468:465:11","text":" @notice Distribute issuance to allocated non-self-minting targets.\n @return Block number that issuance has been distributed to. That will normally be the current block number, unless the contract is paused.\n @dev When the contract is paused, no issuance is distributed and lastIssuanceBlock is not updated.\n @dev This function is permissionless and can be called by anyone, including targets as part of their normal flow."},"functionSelector":"49bdfcb0","id":1497,"implemented":false,"kind":"function","modifiers":[],"name":"distributeIssuance","nameLocation":"947:18:11","nodeType":"FunctionDefinition","parameters":{"id":1493,"nodeType":"ParameterList","parameters":[],"src":"965:2:11"},"returnParameters":{"id":1496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1497,"src":"986:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"986:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"985:9:11"},"scope":1507,"src":"938:57:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1498,"nodeType":"StructuredDocumentation","src":"1001:755:11","text":" @notice Target issuance per block information\n @param target Address of the target\n @return targetIssuance TargetIssuancePerBlock struct containing allocatorIssuanceBlockAppliedTo, selfIssuanceBlockAppliedTo, allocatorIssuanceRate, and selfIssuanceRate\n @dev This function does not revert when paused, instead the caller is expected to correctly read and apply the information provided.\n @dev Targets should check allocatorIssuanceBlockAppliedTo and selfIssuanceBlockAppliedTo - if either is not the current block, that type of issuance is paused for that target.\n @dev Targets should not check the allocator's pause state directly, but rely on the blockAppliedTo fields to determine if issuance is paused."},"functionSelector":"3067cb4c","id":1506,"implemented":false,"kind":"function","modifiers":[],"name":"getTargetIssuancePerBlock","nameLocation":"1770:25:11","nodeType":"FunctionDefinition","parameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1500,"mutability":"mutable","name":"target","nameLocation":"1813:6:11","nodeType":"VariableDeclaration","scope":1506,"src":"1805:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1499,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1795:30:11"},"returnParameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"targetIssuance","nameLocation":"1879:14:11","nodeType":"VariableDeclaration","scope":1506,"src":"1849:44:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TargetIssuancePerBlock_$1583_memory_ptr","typeString":"struct TargetIssuancePerBlock"},"typeName":{"id":1503,"nodeType":"UserDefinedTypeName","pathNode":{"id":1502,"name":"TargetIssuancePerBlock","nameLocations":["1849:22:11"],"nodeType":"IdentifierPath","referencedDeclaration":1583,"src":"1849:22:11"},"referencedDeclaration":1583,"src":"1849:22:11","typeDescriptions":{"typeIdentifier":"t_struct$_TargetIssuancePerBlock_$1583_storage_ptr","typeString":"struct TargetIssuancePerBlock"}},"visibility":"internal"}],"src":"1848:46:11"},"scope":1507,"src":"1761:134:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1508,"src":"420:1477:11","usedErrors":[],"usedEvents":[]}],"src":"46:1852:11"},"id":11},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol","exportedSymbols":{"Allocation":[1591],"DistributionState":[1607],"IIssuanceAllocationStatus":[1565]},"id":1566,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1509,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:12"},{"id":1510,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"80:19:12"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","file":"./IIssuanceAllocatorTypes.sol","id":1513,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1566,"sourceUnit":1608,"src":"101:78:12","symbolAliases":[{"foreign":{"id":1511,"name":"Allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"110:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1512,"name":"DistributionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"122:17:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIssuanceAllocationStatus","contractDependencies":[],"contractKind":"interface","documentation":{"id":1514,"nodeType":"StructuredDocumentation","src":"181:321:12","text":" @title IIssuanceAllocationStatus\n @author Edge & Node\n @notice Interface for read-only status and query operations on the issuance allocator.\n All functions in this interface are view functions that provide information about\n the current state of the allocator, including allocations and system status."},"fullyImplemented":false,"id":1565,"linearizedBaseContracts":[1565],"name":"IIssuanceAllocationStatus","nameLocation":"513:25:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1515,"nodeType":"StructuredDocumentation","src":"545:219:12","text":" @notice Get the current allocation for a target\n @param target Address of the target\n @return allocation Allocation struct containing total, allocator-minting, and self-minting allocations"},"functionSelector":"84c48422","id":1523,"implemented":false,"kind":"function","modifiers":[],"name":"getTargetAllocation","nameLocation":"778:19:12","nodeType":"FunctionDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"target","nameLocation":"806:6:12","nodeType":"VariableDeclaration","scope":1523,"src":"798:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"798:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"797:16:12"},"returnParameters":{"id":1522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1521,"mutability":"mutable","name":"allocation","nameLocation":"855:10:12","nodeType":"VariableDeclaration","scope":1523,"src":"837:28:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation"},"typeName":{"id":1520,"nodeType":"UserDefinedTypeName","pathNode":{"id":1519,"name":"Allocation","nameLocations":["837:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1591,"src":"837:10:12"},"referencedDeclaration":1591,"src":"837:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_storage_ptr","typeString":"struct Allocation"}},"visibility":"internal"}],"src":"836:30:12"},"scope":1565,"src":"769:98:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1524,"nodeType":"StructuredDocumentation","src":"873:196:12","text":" @notice Get the current global allocation totals\n @return allocation Allocation struct containing total, allocator-minting, and self-minting allocations across all targets"},"functionSelector":"15d3b5d8","id":1530,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalAllocation","nameLocation":"1083:18:12","nodeType":"FunctionDefinition","parameters":{"id":1525,"nodeType":"ParameterList","parameters":[],"src":"1101:2:12"},"returnParameters":{"id":1529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1528,"mutability":"mutable","name":"allocation","nameLocation":"1145:10:12","nodeType":"VariableDeclaration","scope":1530,"src":"1127:28:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation"},"typeName":{"id":1527,"nodeType":"UserDefinedTypeName","pathNode":{"id":1526,"name":"Allocation","nameLocations":["1127:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1591,"src":"1127:10:12"},"referencedDeclaration":1591,"src":"1127:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_storage_ptr","typeString":"struct Allocation"}},"visibility":"internal"}],"src":"1126:30:12"},"scope":1565,"src":"1074:83:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1531,"nodeType":"StructuredDocumentation","src":"1163:110:12","text":" @notice Get all allocated target addresses\n @return targets Array of target addresses"},"functionSelector":"63fe3b56","id":1537,"implemented":false,"kind":"function","modifiers":[],"name":"getTargets","nameLocation":"1287:10:12","nodeType":"FunctionDefinition","parameters":{"id":1532,"nodeType":"ParameterList","parameters":[],"src":"1297:2:12"},"returnParameters":{"id":1536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1535,"mutability":"mutable","name":"targets","nameLocation":"1340:7:12","nodeType":"VariableDeclaration","scope":1537,"src":"1323:24:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1533,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1534,"nodeType":"ArrayTypeName","src":"1323:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1322:26:12"},"scope":1565,"src":"1278:71:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1538,"nodeType":"StructuredDocumentation","src":"1355:203:12","text":" @notice Get a specific allocated target address by index\n @param index The index of the target address to retrieve\n @return target The target address at the specified index"},"functionSelector":"87ee921c","id":1545,"implemented":false,"kind":"function","modifiers":[],"name":"getTargetAt","nameLocation":"1572:11:12","nodeType":"FunctionDefinition","parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"mutability":"mutable","name":"index","nameLocation":"1592:5:12","nodeType":"VariableDeclaration","scope":1545,"src":"1584:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1583:15:12"},"returnParameters":{"id":1544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1543,"mutability":"mutable","name":"target","nameLocation":"1630:6:12","nodeType":"VariableDeclaration","scope":1545,"src":"1622:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1542,"name":"address","nodeType":"ElementaryTypeName","src":"1622:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1621:16:12"},"scope":1565,"src":"1563:75:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1546,"nodeType":"StructuredDocumentation","src":"1644:121:12","text":" @notice Get the number of allocated targets\n @return count The total number of allocated targets"},"functionSelector":"4a1293b7","id":1551,"implemented":false,"kind":"function","modifiers":[],"name":"getTargetCount","nameLocation":"1779:14:12","nodeType":"FunctionDefinition","parameters":{"id":1547,"nodeType":"ParameterList","parameters":[],"src":"1793:2:12"},"returnParameters":{"id":1550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1549,"mutability":"mutable","name":"count","nameLocation":"1827:5:12","nodeType":"VariableDeclaration","scope":1551,"src":"1819:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1548,"name":"uint256","nodeType":"ElementaryTypeName","src":"1819:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1818:15:12"},"scope":1565,"src":"1770:64:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1552,"nodeType":"StructuredDocumentation","src":"1840:124:12","text":" @notice Get the current issuance per block\n @return issuancePerBlock The current issuance per block"},"functionSelector":"79d5fc54","id":1557,"implemented":false,"kind":"function","modifiers":[],"name":"getIssuancePerBlock","nameLocation":"1978:19:12","nodeType":"FunctionDefinition","parameters":{"id":1553,"nodeType":"ParameterList","parameters":[],"src":"1997:2:12"},"returnParameters":{"id":1556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1555,"mutability":"mutable","name":"issuancePerBlock","nameLocation":"2031:16:12","nodeType":"VariableDeclaration","scope":1557,"src":"2023:24:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2022:26:12"},"scope":1565,"src":"1969:80:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1558,"nodeType":"StructuredDocumentation","src":"2055:172:12","text":" @notice Get pending issuance distribution state\n @return distributionState DistributionState struct containing block tracking and accumulation info"},"functionSelector":"ee56977e","id":1564,"implemented":false,"kind":"function","modifiers":[],"name":"getDistributionState","nameLocation":"2241:20:12","nodeType":"FunctionDefinition","parameters":{"id":1559,"nodeType":"ParameterList","parameters":[],"src":"2261:2:12"},"returnParameters":{"id":1563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1562,"mutability":"mutable","name":"distributionState","nameLocation":"2312:17:12","nodeType":"VariableDeclaration","scope":1564,"src":"2287:42:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DistributionState_$1607_memory_ptr","typeString":"struct DistributionState"},"typeName":{"id":1561,"nodeType":"UserDefinedTypeName","pathNode":{"id":1560,"name":"DistributionState","nameLocations":["2287:17:12"],"nodeType":"IdentifierPath","referencedDeclaration":1607,"src":"2287:17:12"},"referencedDeclaration":1607,"src":"2287:17:12","typeDescriptions":{"typeIdentifier":"t_struct$_DistributionState_$1607_storage_ptr","typeString":"struct DistributionState"}},"visibility":"internal"}],"src":"2286:44:12"},"scope":1565,"src":"2232:99:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1566,"src":"503:1830:12","usedErrors":[],"usedEvents":[]}],"src":"46:2288:12"},"id":12},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","exportedSymbols":{"Allocation":[1591],"AllocationTarget":[1599],"DistributionState":[1607],"SelfMintingEventMode":[1573],"TargetIssuancePerBlock":[1583]},"id":1608,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1567,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:13"},{"id":1568,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"80:19:13"},{"canonicalName":"SelfMintingEventMode","documentation":{"id":1569,"nodeType":"StructuredDocumentation","src":"101:290:13","text":" @notice Controls self-minting event emission behavior to manage gas costs\n @dev None skips event emission entirely (lowest gas)\n @dev Aggregate emits a single aggregated event for all self-minting\n @dev PerTarget emits events for each target with self-minting (highest gas)"},"id":1573,"members":[{"id":1570,"name":"None","nameLocation":"424:4:13","nodeType":"EnumValue","src":"424:4:13"},{"id":1571,"name":"Aggregate","nameLocation":"434:9:13","nodeType":"EnumValue","src":"434:9:13"},{"id":1572,"name":"PerTarget","nameLocation":"449:9:13","nodeType":"EnumValue","src":"449:9:13"}],"name":"SelfMintingEventMode","nameLocation":"397:20:13","nodeType":"EnumDefinition","src":"392:68:13"},{"canonicalName":"TargetIssuancePerBlock","documentation":{"id":1574,"nodeType":"StructuredDocumentation","src":"462:410:13","text":" @notice Target issuance per block information\n @param allocatorIssuanceRate Issuance rate for allocator-minting (tokens per block)\n @param allocatorIssuanceBlockAppliedTo The block up to which allocator issuance has been applied\n @param selfIssuanceRate Issuance rate for self-minting (tokens per block)\n @param selfIssuanceBlockAppliedTo The block up to which self issuance has been applied"},"id":1583,"members":[{"constant":false,"id":1576,"mutability":"mutable","name":"allocatorIssuanceRate","nameLocation":"917:21:13","nodeType":"VariableDeclaration","scope":1583,"src":"909:29:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1575,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1578,"mutability":"mutable","name":"allocatorIssuanceBlockAppliedTo","nameLocation":"952:31:13","nodeType":"VariableDeclaration","scope":1583,"src":"944:39:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1577,"name":"uint256","nodeType":"ElementaryTypeName","src":"944:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1580,"mutability":"mutable","name":"selfIssuanceRate","nameLocation":"997:16:13","nodeType":"VariableDeclaration","scope":1583,"src":"989:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1579,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1582,"mutability":"mutable","name":"selfIssuanceBlockAppliedTo","nameLocation":"1027:26:13","nodeType":"VariableDeclaration","scope":1583,"src":"1019:34:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1581,"name":"uint256","nodeType":"ElementaryTypeName","src":"1019:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TargetIssuancePerBlock","nameLocation":"880:22:13","nodeType":"StructDefinition","scope":1608,"src":"873:183:13","visibility":"public"},{"canonicalName":"Allocation","documentation":{"id":1584,"nodeType":"StructuredDocumentation","src":"1058:310:13","text":" @notice Allocation information\n @param totalAllocationRate Total allocation rate (tokens per block: allocatorMintingRate + selfMintingRate)\n @param allocatorMintingRate Allocator-minting allocation rate (tokens per block)\n @param selfMintingRate Self-minting allocation rate (tokens per block)"},"id":1591,"members":[{"constant":false,"id":1586,"mutability":"mutable","name":"totalAllocationRate","nameLocation":"1401:19:13","nodeType":"VariableDeclaration","scope":1591,"src":"1393:27:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1393:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1588,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"1434:20:13","nodeType":"VariableDeclaration","scope":1591,"src":"1426:28:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1587,"name":"uint256","nodeType":"ElementaryTypeName","src":"1426:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1590,"mutability":"mutable","name":"selfMintingRate","nameLocation":"1468:15:13","nodeType":"VariableDeclaration","scope":1591,"src":"1460:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1589,"name":"uint256","nodeType":"ElementaryTypeName","src":"1460:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Allocation","nameLocation":"1376:10:13","nodeType":"StructDefinition","scope":1608,"src":"1369:117:13","visibility":"public"},{"canonicalName":"AllocationTarget","documentation":{"id":1592,"nodeType":"StructuredDocumentation","src":"1488:300:13","text":" @notice Allocation target information\n @param allocatorMintingRate The allocator-minting allocation rate (tokens per block)\n @param selfMintingRate The self-minting allocation rate (tokens per block)\n @param lastChangeNotifiedBlock Last block when this target was notified of changes"},"id":1599,"members":[{"constant":false,"id":1594,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"1827:20:13","nodeType":"VariableDeclaration","scope":1599,"src":"1819:28:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1819:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1596,"mutability":"mutable","name":"selfMintingRate","nameLocation":"1861:15:13","nodeType":"VariableDeclaration","scope":1599,"src":"1853:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"1853:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1598,"mutability":"mutable","name":"lastChangeNotifiedBlock","nameLocation":"1890:23:13","nodeType":"VariableDeclaration","scope":1599,"src":"1882:31:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1597,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AllocationTarget","nameLocation":"1796:16:13","nodeType":"StructDefinition","scope":1608,"src":"1789:127:13","visibility":"public"},{"canonicalName":"DistributionState","documentation":{"id":1600,"nodeType":"StructuredDocumentation","src":"1918:348:13","text":" @notice Distribution state information\n @param lastDistributionBlock Last block where allocator-minting issuance was distributed\n @param lastSelfMintingBlock Last block where self-minting issuance was applied\n @param selfMintingOffset Self-minting that offsets allocator-minting budget (starts during pause, clears on distribution)"},"id":1607,"members":[{"constant":false,"id":1602,"mutability":"mutable","name":"lastDistributionBlock","nameLocation":"2306:21:13","nodeType":"VariableDeclaration","scope":1607,"src":"2298:29:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1601,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1604,"mutability":"mutable","name":"lastSelfMintingBlock","nameLocation":"2341:20:13","nodeType":"VariableDeclaration","scope":1607,"src":"2333:28:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1603,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1606,"mutability":"mutable","name":"selfMintingOffset","nameLocation":"2375:17:13","nodeType":"VariableDeclaration","scope":1607,"src":"2367:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1605,"name":"uint256","nodeType":"ElementaryTypeName","src":"2367:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"DistributionState","nameLocation":"2274:17:13","nodeType":"StructDefinition","scope":1608,"src":"2267:128:13","visibility":"public"}],"src":"46:2350:13"},"id":13},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","exportedSymbols":{"IIssuanceTarget":[1631]},"id":1632,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1609,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:14"},{"abstract":false,"baseContracts":[],"canonicalName":"IIssuanceTarget","contractDependencies":[],"contractKind":"interface","documentation":{"id":1610,"nodeType":"StructuredDocumentation","src":"81:140:14","text":" @title IIssuanceTarget\n @author Edge & Node\n @notice Interface for contracts that receive issuance from an issuance allocator"},"fullyImplemented":false,"id":1631,"linearizedBaseContracts":[1631],"name":"IIssuanceTarget","nameLocation":"232:15:14","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1611,"nodeType":"StructuredDocumentation","src":"254:185:14","text":" @notice New issuance allocator set\n @param oldIssuanceAllocator Old issuance allocator address\n @param newIssuanceAllocator New issuance allocator address"},"eventSelector":"01674b69434be290e7c6acef73422bc6cf74884b5228c9e6cab93117eae2cdcb","id":1617,"name":"IssuanceAllocatorSet","nameLocation":"450:20:14","nodeType":"EventDefinition","parameters":{"id":1616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"indexed":true,"mutability":"mutable","name":"oldIssuanceAllocator","nameLocation":"487:20:14","nodeType":"VariableDeclaration","scope":1617,"src":"471:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1612,"name":"address","nodeType":"ElementaryTypeName","src":"471:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1615,"indexed":true,"mutability":"mutable","name":"newIssuanceAllocator","nameLocation":"525:20:14","nodeType":"VariableDeclaration","scope":1617,"src":"509:36:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1614,"name":"address","nodeType":"ElementaryTypeName","src":"509:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"470:76:14"},"src":"444:103:14"},{"anonymous":false,"documentation":{"id":1618,"nodeType":"StructuredDocumentation","src":"553:58:14","text":"@notice Emitted before the issuance allocation changes"},"eventSelector":"a3b917c02656dce72578274a2691b36a801594defb0373242b11f7f302119406","id":1620,"name":"BeforeIssuanceAllocationChange","nameLocation":"622:30:14","nodeType":"EventDefinition","parameters":{"id":1619,"nodeType":"ParameterList","parameters":[],"src":"652:2:14"},"src":"616:39:14"},{"documentation":{"id":1621,"nodeType":"StructuredDocumentation","src":"661:444:14","text":" @notice Called by the issuance allocator before the target's issuance allocation changes\n @dev The target should ensure that all issuance related calculations are up-to-date\n with the current block so that an allocation change can be applied correctly.\n Note that the allocation could change multiple times in the same block after\n this function has been called, only the final allocation is relevant."},"functionSelector":"3df8d682","id":1624,"implemented":false,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"1119:30:14","nodeType":"FunctionDefinition","parameters":{"id":1622,"nodeType":"ParameterList","parameters":[],"src":"1149:2:14"},"returnParameters":{"id":1623,"nodeType":"ParameterList","parameters":[],"src":"1160:0:14"},"scope":1631,"src":"1110:51:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1625,"nodeType":"StructuredDocumentation","src":"1167:313:14","text":" @notice Sets the issuance allocator for this target\n @dev This function facilitates upgrades by providing a standard way for targets\n to change their allocator. Implementations can define their own access control.\n @param newIssuanceAllocator Address of the issuance allocator"},"functionSelector":"931c0ac1","id":1630,"implemented":false,"kind":"function","modifiers":[],"name":"setIssuanceAllocator","nameLocation":"1494:20:14","nodeType":"FunctionDefinition","parameters":{"id":1628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1627,"mutability":"mutable","name":"newIssuanceAllocator","nameLocation":"1523:20:14","nodeType":"VariableDeclaration","scope":1630,"src":"1515:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1626,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1514:30:14"},"returnParameters":{"id":1629,"nodeType":"ParameterList","parameters":[],"src":"1553:0:14"},"scope":1631,"src":"1485:69:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1632,"src":"222:1334:14","usedErrors":[],"usedEvents":[1617,1620]}],"src":"46:1511:14"},"id":14},"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol","exportedSymbols":{"ISendTokens":[1643]},"id":1644,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1633,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:15"},{"abstract":false,"baseContracts":[],"canonicalName":"ISendTokens","contractDependencies":[],"contractKind":"interface","documentation":{"id":1634,"nodeType":"StructuredDocumentation","src":"81:272:15","text":" @title ISendTokens\n @author Edge & Node\n @notice Interface for contracts that can send tokens to arbitrary addresses\n @dev This interface provides a simple token transfer capability for contracts\n that need to distribute or send tokens programmatically."},"fullyImplemented":false,"id":1643,"linearizedBaseContracts":[1643],"name":"ISendTokens","nameLocation":"364:11:15","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1635,"nodeType":"StructuredDocumentation","src":"382:158:15","text":" @notice Send tokens to a specified address\n @param to The address to send tokens to\n @param amount The amount of tokens to send"},"functionSelector":"05ab421d","id":1642,"implemented":false,"kind":"function","modifiers":[],"name":"sendTokens","nameLocation":"554:10:15","nodeType":"FunctionDefinition","parameters":{"id":1640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1637,"mutability":"mutable","name":"to","nameLocation":"573:2:15","nodeType":"VariableDeclaration","scope":1642,"src":"565:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1636,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1639,"mutability":"mutable","name":"amount","nameLocation":"585:6:15","nodeType":"VariableDeclaration","scope":1642,"src":"577:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1638,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"564:28:15"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[],"src":"601:0:15"},"scope":1643,"src":"545:57:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1644,"src":"354:250:15","usedErrors":[],"usedEvents":[]}],"src":"46:559:15"},"id":15},"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol","exportedSymbols":{"IPausableControl":[1661]},"id":1662,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1645,"literals":["solidity","^","0.7",".6","||","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:33:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IPausableControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":1646,"nodeType":"StructuredDocumentation","src":"81:435:16","text":" @title IPausableControl\n @author Edge & Node\n @notice Interface for contracts that support pause/unpause functionality\n @dev This interface extends standard pausable functionality with explicit\n pause and unpause functions. Contracts implementing this interface allow\n authorized accounts to pause and unpause contract operations.\n Events (Paused, Unpaused) are inherited from OpenZeppelin's PausableUpgradeable."},"fullyImplemented":false,"id":1661,"linearizedBaseContracts":[1661],"name":"IPausableControl","nameLocation":"527:16:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1647,"nodeType":"StructuredDocumentation","src":"550:154:16","text":" @notice Pause the contract\n @dev Pauses contract operations. Only functions using whenNotPaused\n modifier will be affected."},"functionSelector":"8456cb59","id":1650,"implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"718:5:16","nodeType":"FunctionDefinition","parameters":{"id":1648,"nodeType":"ParameterList","parameters":[],"src":"723:2:16"},"returnParameters":{"id":1649,"nodeType":"ParameterList","parameters":[],"src":"734:0:16"},"scope":1661,"src":"709:26:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1651,"nodeType":"StructuredDocumentation","src":"741:154:16","text":" @notice Unpause the contract\n @dev Resumes contract operations. Only functions using whenPaused\n modifier will be affected."},"functionSelector":"3f4ba83a","id":1654,"implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"909:7:16","nodeType":"FunctionDefinition","parameters":{"id":1652,"nodeType":"ParameterList","parameters":[],"src":"916:2:16"},"returnParameters":{"id":1653,"nodeType":"ParameterList","parameters":[],"src":"927:0:16"},"scope":1661,"src":"900:28:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1655,"nodeType":"StructuredDocumentation","src":"934:131:16","text":" @notice Check if the contract is currently paused\n @return True if the contract is paused, false otherwise"},"functionSelector":"5c975abb","id":1660,"implemented":false,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1079:6:16","nodeType":"FunctionDefinition","parameters":{"id":1656,"nodeType":"ParameterList","parameters":[],"src":"1085:2:16"},"returnParameters":{"id":1659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1660,"src":"1111:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1657,"name":"bool","nodeType":"ElementaryTypeName","src":"1111:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1110:6:16"},"scope":1661,"src":"1070:47:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1662,"src":"517:602:16","usedErrors":[],"usedEvents":[]}],"src":"46:1074:16"},"id":16},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol","exportedSymbols":{"IAllocation":[2061],"IDataServiceFees":[145],"IGraphPayments":[361],"IIndexingAgreement":[2085],"ILegacyAllocation":[2100],"IRecurringCollector":[1076],"ISubgraphService":[2020]},"id":2021,"license":"GPL-3.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1663,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"45:24:17"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/data-service/IDataServiceFees.sol","file":"../data-service/IDataServiceFees.sol","id":1665,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":146,"src":"71:72:17","symbolAliases":[{"foreign":{"id":1664,"name":"IDataServiceFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":145,"src":"80:16:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IGraphPayments.sol","file":"../horizon/IGraphPayments.sol","id":1667,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":362,"src":"144:63:17","symbolAliases":[{"foreign":{"id":1666,"name":"IGraphPayments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"153:14:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol","file":"../horizon/IRecurringCollector.sol","id":1669,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":1077,"src":"209:73:17","symbolAliases":[{"foreign":{"id":1668,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"218:19:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol","file":"./internal/IAllocation.sol","id":1671,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":2062,"src":"284:57:17","symbolAliases":[{"foreign":{"id":1670,"name":"IAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2061,"src":"293:11:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol","file":"./internal/IIndexingAgreement.sol","id":1673,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":2086,"src":"342:71:17","symbolAliases":[{"foreign":{"id":1672,"name":"IIndexingAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2085,"src":"351:18:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol","file":"./internal/ILegacyAllocation.sol","id":1675,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2021,"sourceUnit":2101,"src":"414:69:17","symbolAliases":[{"foreign":{"id":1674,"name":"ILegacyAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"423:17:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1677,"name":"IDataServiceFees","nameLocations":["1235:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":145,"src":"1235:16:17"},"id":1678,"nodeType":"InheritanceSpecifier","src":"1235:16:17"}],"canonicalName":"ISubgraphService","contractDependencies":[],"contractKind":"interface","documentation":{"id":1676,"nodeType":"StructuredDocumentation","src":"485:719:17","text":" @title Interface for the {SubgraphService} contract\n @author Edge & Node\n @dev This interface extends {IDataServiceFees} and {IDataService}.\n @notice The Subgraph Service is a data service built on top of Graph Horizon that supports the use case of\n subgraph indexing and querying. The {SubgraphService} contract implements the flows described in the Data\n Service framework to allow indexers to register as subgraph service providers, create allocations to signal\n their commitment to index a subgraph, and collect fees for indexing and querying services.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":false,"id":2020,"linearizedBaseContracts":[2020,145,131],"name":"ISubgraphService","nameLocation":"1215:16:17","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ISubgraphService.Indexer","documentation":{"id":1679,"nodeType":"StructuredDocumentation","src":"1258:190:17","text":" @notice Indexer details\n @param url The URL where the indexer can be reached at for queries\n @param geoHash The indexer's geo location, expressed as a geo hash"},"id":1684,"members":[{"constant":false,"id":1681,"mutability":"mutable","name":"url","nameLocation":"1485:3:17","nodeType":"VariableDeclaration","scope":1684,"src":"1478:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1680,"name":"string","nodeType":"ElementaryTypeName","src":"1478:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1683,"mutability":"mutable","name":"geoHash","nameLocation":"1505:7:17","nodeType":"VariableDeclaration","scope":1684,"src":"1498:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1682,"name":"string","nodeType":"ElementaryTypeName","src":"1498:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Indexer","nameLocation":"1460:7:17","nodeType":"StructDefinition","scope":2020,"src":"1453:66:17","visibility":"public"},{"anonymous":false,"documentation":{"id":1685,"nodeType":"StructuredDocumentation","src":"1525:471:17","text":" @notice Emitted when a subgraph service collects query fees from Graph Payments\n @param serviceProvider The address of the service provider\n @param payer The address paying for the query fees\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param tokensCollected The amount of tokens collected\n @param tokensCurators The amount of tokens curators receive"},"eventSelector":"184c452047299395d4f7f147eb8e823458a450798539be54aeed978f13d87ba2","id":1699,"name":"QueryFeesCollected","nameLocation":"2007:18:17","nodeType":"EventDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1687,"indexed":true,"mutability":"mutable","name":"serviceProvider","nameLocation":"2051:15:17","nodeType":"VariableDeclaration","scope":1699,"src":"2035:31:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1686,"name":"address","nodeType":"ElementaryTypeName","src":"2035:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1689,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"2092:5:17","nodeType":"VariableDeclaration","scope":1699,"src":"2076:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1688,"name":"address","nodeType":"ElementaryTypeName","src":"2076:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1691,"indexed":true,"mutability":"mutable","name":"allocationId","nameLocation":"2123:12:17","nodeType":"VariableDeclaration","scope":1699,"src":"2107:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"2107:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1693,"indexed":false,"mutability":"mutable","name":"subgraphDeploymentId","nameLocation":"2153:20:17","nodeType":"VariableDeclaration","scope":1699,"src":"2145:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2145:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1695,"indexed":false,"mutability":"mutable","name":"tokensCollected","nameLocation":"2191:15:17","nodeType":"VariableDeclaration","scope":1699,"src":"2183:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1694,"name":"uint256","nodeType":"ElementaryTypeName","src":"2183:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1697,"indexed":false,"mutability":"mutable","name":"tokensCurators","nameLocation":"2224:14:17","nodeType":"VariableDeclaration","scope":1699,"src":"2216:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1696,"name":"uint256","nodeType":"ElementaryTypeName","src":"2216:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:219:17"},"src":"2001:244:17"},{"anonymous":false,"documentation":{"id":1700,"nodeType":"StructuredDocumentation","src":"2251:207:17","text":" @notice Emitted when an indexer sets a new payments destination\n @param indexer The address of the indexer\n @param paymentsDestination The address where payments should be sent"},"eventSelector":"003215dc05a2fc4e6a1e2c2776311d207c730ee51085aae221acc5cbe6fb55c1","id":1706,"name":"PaymentsDestinationSet","nameLocation":"2469:22:17","nodeType":"EventDefinition","parameters":{"id":1705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1702,"indexed":true,"mutability":"mutable","name":"indexer","nameLocation":"2508:7:17","nodeType":"VariableDeclaration","scope":1706,"src":"2492:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1701,"name":"address","nodeType":"ElementaryTypeName","src":"2492:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1704,"indexed":true,"mutability":"mutable","name":"paymentsDestination","nameLocation":"2533:19:17","nodeType":"VariableDeclaration","scope":1706,"src":"2517:35:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1703,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2491:62:17"},"src":"2463:91:17"},{"anonymous":false,"documentation":{"id":1707,"nodeType":"StructuredDocumentation","src":"2560:115:17","text":" @notice Emitted when the stake to fees ratio is set.\n @param ratio The stake to fees ratio"},"eventSelector":"2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23","id":1711,"name":"StakeToFeesRatioSet","nameLocation":"2686:19:17","nodeType":"EventDefinition","parameters":{"id":1710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1709,"indexed":false,"mutability":"mutable","name":"ratio","nameLocation":"2714:5:17","nodeType":"VariableDeclaration","scope":1711,"src":"2706:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1708,"name":"uint256","nodeType":"ElementaryTypeName","src":"2706:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2705:15:17"},"src":"2680:41:17"},{"anonymous":false,"documentation":{"id":1712,"nodeType":"StructuredDocumentation","src":"2783:103:17","text":" @notice Emitted when curator cuts are set\n @param curationCut The curation cut"},"eventSelector":"6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9","id":1716,"name":"CurationCutSet","nameLocation":"2897:14:17","nodeType":"EventDefinition","parameters":{"id":1715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1714,"indexed":false,"mutability":"mutable","name":"curationCut","nameLocation":"2920:11:17","nodeType":"VariableDeclaration","scope":1716,"src":"2912:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1713,"name":"uint256","nodeType":"ElementaryTypeName","src":"2912:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2911:21:17"},"src":"2891:42:17"},{"anonymous":false,"documentation":{"id":1717,"nodeType":"StructuredDocumentation","src":"2995:116:17","text":" @notice Emitted when indexing fees cut is set\n @param indexingFeesCut The indexing fees cut"},"eventSelector":"b7d8f0afaaaa2b4105bb399bbdd9878cf1ff24d8c33b706e391b6c03c51f7282","id":1721,"name":"IndexingFeesCutSet","nameLocation":"3122:18:17","nodeType":"EventDefinition","parameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1719,"indexed":false,"mutability":"mutable","name":"indexingFeesCut","nameLocation":"3149:15:17","nodeType":"VariableDeclaration","scope":1721,"src":"3141:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1718,"name":"uint256","nodeType":"ElementaryTypeName","src":"3141:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3140:25:17"},"src":"3116:50:17"},{"documentation":{"id":1722,"nodeType":"StructuredDocumentation","src":"3228:146:17","text":" @notice Thrown when trying to set a curation cut that is not a valid PPM value\n @param curationCut The curation cut value"},"errorSelector":"1c9c717b","id":1726,"name":"SubgraphServiceInvalidCurationCut","nameLocation":"3385:33:17","nodeType":"ErrorDefinition","parameters":{"id":1725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1724,"mutability":"mutable","name":"curationCut","nameLocation":"3427:11:17","nodeType":"VariableDeclaration","scope":1726,"src":"3419:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1723,"name":"uint256","nodeType":"ElementaryTypeName","src":"3419:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3418:21:17"},"src":"3379:61:17"},{"documentation":{"id":1727,"nodeType":"StructuredDocumentation","src":"3446:161:17","text":" @notice Thrown when trying to set an indexing fees cut that is not a valid PPM value\n @param indexingFeesCut The indexing fees cut value"},"errorSelector":"7d941295","id":1731,"name":"SubgraphServiceInvalidIndexingFeesCut","nameLocation":"3618:37:17","nodeType":"ErrorDefinition","parameters":{"id":1730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1729,"mutability":"mutable","name":"indexingFeesCut","nameLocation":"3664:15:17","nodeType":"VariableDeclaration","scope":1731,"src":"3656:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3656:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3655:25:17"},"src":"3612:69:17"},{"documentation":{"id":1732,"nodeType":"StructuredDocumentation","src":"3687:85:17","text":" @notice Thrown when an indexer tries to register with an empty URL"},"errorSelector":"f0708720","id":1734,"name":"SubgraphServiceEmptyUrl","nameLocation":"3783:23:17","nodeType":"ErrorDefinition","parameters":{"id":1733,"nodeType":"ParameterList","parameters":[],"src":"3806:2:17"},"src":"3777:32:17"},{"documentation":{"id":1735,"nodeType":"StructuredDocumentation","src":"3815:89:17","text":" @notice Thrown when an indexer tries to register with an empty geohash"},"errorSelector":"798ef654","id":1737,"name":"SubgraphServiceEmptyGeohash","nameLocation":"3915:27:17","nodeType":"ErrorDefinition","parameters":{"id":1736,"nodeType":"ParameterList","parameters":[],"src":"3942:2:17"},"src":"3909:36:17"},{"documentation":{"id":1738,"nodeType":"StructuredDocumentation","src":"3951:179:17","text":" @notice Thrown when an indexer tries to perform an operation but they are not registered\n @param indexer The address of the indexer that is not registered"},"errorSelector":"ee271899","id":1742,"name":"SubgraphServiceIndexerNotRegistered","nameLocation":"4141:35:17","nodeType":"ErrorDefinition","parameters":{"id":1741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1740,"mutability":"mutable","name":"indexer","nameLocation":"4185:7:17","nodeType":"VariableDeclaration","scope":1742,"src":"4177:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1739,"name":"address","nodeType":"ElementaryTypeName","src":"4177:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4176:17:17"},"src":"4135:59:17"},{"documentation":{"id":1743,"nodeType":"StructuredDocumentation","src":"4200:168:17","text":" @notice Thrown when an indexer tries to collect fees for an unsupported payment type\n @param paymentType The payment type that is not supported"},"errorSelector":"47031cf0","id":1748,"name":"SubgraphServiceInvalidPaymentType","nameLocation":"4379:33:17","nodeType":"ErrorDefinition","parameters":{"id":1747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1746,"mutability":"mutable","name":"paymentType","nameLocation":"4441:11:17","nodeType":"VariableDeclaration","scope":1748,"src":"4413:39:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"},"typeName":{"id":1745,"nodeType":"UserDefinedTypeName","pathNode":{"id":1744,"name":"IGraphPayments.PaymentTypes","nameLocations":["4413:14:17","4428:12:17"],"nodeType":"IdentifierPath","referencedDeclaration":299,"src":"4413:27:17"},"referencedDeclaration":299,"src":"4413:27:17","typeDescriptions":{"typeIdentifier":"t_enum$_PaymentTypes_$299","typeString":"enum IGraphPayments.PaymentTypes"}},"visibility":"internal"}],"src":"4412:41:17"},"src":"4373:81:17"},{"documentation":{"id":1749,"nodeType":"StructuredDocumentation","src":"4460:264:17","text":" @notice Thrown when the contract GRT balance is inconsistent after collecting from Graph Payments\n @param balanceBefore The contract GRT balance before the collection\n @param balanceAfter The contract GRT balance after the collection"},"errorSelector":"9db8bc95","id":1755,"name":"SubgraphServiceInconsistentCollection","nameLocation":"4735:37:17","nodeType":"ErrorDefinition","parameters":{"id":1754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1751,"mutability":"mutable","name":"balanceBefore","nameLocation":"4781:13:17","nodeType":"VariableDeclaration","scope":1755,"src":"4773:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1750,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1753,"mutability":"mutable","name":"balanceAfter","nameLocation":"4804:12:17","nodeType":"VariableDeclaration","scope":1755,"src":"4796:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1752,"name":"uint256","nodeType":"ElementaryTypeName","src":"4796:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4772:45:17"},"src":"4729:89:17"},{"documentation":{"id":1756,"nodeType":"StructuredDocumentation","src":"4824:238:17","text":" @notice @notice Thrown when the service provider does not match the expected indexer.\n @param providedIndexer The address of the provided indexer.\n @param expectedIndexer The address of the expected indexer."},"errorSelector":"1a071d07","id":1762,"name":"SubgraphServiceIndexerMismatch","nameLocation":"5073:30:17","nodeType":"ErrorDefinition","parameters":{"id":1761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1758,"mutability":"mutable","name":"providedIndexer","nameLocation":"5112:15:17","nodeType":"VariableDeclaration","scope":1762,"src":"5104:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1757,"name":"address","nodeType":"ElementaryTypeName","src":"5104:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1760,"mutability":"mutable","name":"expectedIndexer","nameLocation":"5137:15:17","nodeType":"VariableDeclaration","scope":1762,"src":"5129:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1759,"name":"address","nodeType":"ElementaryTypeName","src":"5129:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5103:50:17"},"src":"5067:87:17"},{"documentation":{"id":1763,"nodeType":"StructuredDocumentation","src":"5160:223:17","text":" @notice Thrown when the indexer in the allocation state does not match the expected indexer.\n @param indexer The address of the expected indexer.\n @param allocationId The id of the allocation."},"errorSelector":"c0bbff13","id":1769,"name":"SubgraphServiceAllocationNotAuthorized","nameLocation":"5394:38:17","nodeType":"ErrorDefinition","parameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1765,"mutability":"mutable","name":"indexer","nameLocation":"5441:7:17","nodeType":"VariableDeclaration","scope":1769,"src":"5433:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1764,"name":"address","nodeType":"ElementaryTypeName","src":"5433:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1767,"mutability":"mutable","name":"allocationId","nameLocation":"5458:12:17","nodeType":"VariableDeclaration","scope":1769,"src":"5450:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"5450:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5432:39:17"},"src":"5388:84:17"},{"documentation":{"id":1770,"nodeType":"StructuredDocumentation","src":"5478:245:17","text":" @notice Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\n @param ravIndexer The address of the RAV indexer\n @param allocationIndexer The address of the allocation indexer"},"errorSelector":"8a11f7ee","id":1776,"name":"SubgraphServiceInvalidRAV","nameLocation":"5734:25:17","nodeType":"ErrorDefinition","parameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1772,"mutability":"mutable","name":"ravIndexer","nameLocation":"5768:10:17","nodeType":"VariableDeclaration","scope":1776,"src":"5760:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1771,"name":"address","nodeType":"ElementaryTypeName","src":"5760:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1774,"mutability":"mutable","name":"allocationIndexer","nameLocation":"5788:17:17","nodeType":"VariableDeclaration","scope":1776,"src":"5780:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1773,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5759:47:17"},"src":"5728:79:17"},{"documentation":{"id":1777,"nodeType":"StructuredDocumentation","src":"5813:182:17","text":" @notice Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\n @param allocationId The id of the allocation"},"errorSelector":"068ef6a0","id":1781,"name":"SubgraphServiceCannotForceCloseAllocation","nameLocation":"6006:41:17","nodeType":"ErrorDefinition","parameters":{"id":1780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"mutability":"mutable","name":"allocationId","nameLocation":"6056:12:17","nodeType":"VariableDeclaration","scope":1781,"src":"6048:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1778,"name":"address","nodeType":"ElementaryTypeName","src":"6048:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6047:22:17"},"src":"6000:70:17"},{"documentation":{"id":1782,"nodeType":"StructuredDocumentation","src":"6076:137:17","text":" @notice Thrown when trying to force close an altruistic allocation\n @param allocationId The id of the allocation"},"errorSelector":"be3d9ae8","id":1786,"name":"SubgraphServiceAllocationIsAltruistic","nameLocation":"6224:37:17","nodeType":"ErrorDefinition","parameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"allocationId","nameLocation":"6270:12:17","nodeType":"VariableDeclaration","scope":1786,"src":"6262:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1783,"name":"address","nodeType":"ElementaryTypeName","src":"6262:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6261:22:17"},"src":"6218:66:17"},{"documentation":{"id":1787,"nodeType":"StructuredDocumentation","src":"6290:80:17","text":" @notice Thrown when trying to set stake to fees ratio to zero"},"errorSelector":"bc71a043","id":1789,"name":"SubgraphServiceInvalidZeroStakeToFeesRatio","nameLocation":"6381:42:17","nodeType":"ErrorDefinition","parameters":{"id":1788,"nodeType":"ParameterList","parameters":[],"src":"6423:2:17"},"src":"6375:51:17"},{"documentation":{"id":1790,"nodeType":"StructuredDocumentation","src":"6432:118:17","text":" @notice Thrown when collectionId is not a valid address\n @param collectionId The collectionId"},"errorSelector":"fa4ac7a7","id":1794,"name":"SubgraphServiceInvalidCollectionId","nameLocation":"6561:34:17","nodeType":"ErrorDefinition","parameters":{"id":1793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1792,"mutability":"mutable","name":"collectionId","nameLocation":"6604:12:17","nodeType":"VariableDeclaration","scope":1794,"src":"6596:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6596:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6595:22:17"},"src":"6555:63:17"},{"documentation":{"id":1795,"nodeType":"StructuredDocumentation","src":"6624:589:17","text":" @notice Initialize the contract\n @dev The thawingPeriod and verifierCut ranges are not set here because they are variables\n on the DisputeManager. We use the {ProvisionManager} overrideable getters to get the ranges.\n @param owner The owner of the contract\n @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation\n @param maximumDelegationRatio The maximum delegation ratio allowed for an allocation\n @param stakeToFeesRatio The ratio of stake to fees to lock when collecting query fees"},"functionSelector":"c84a5ef3","id":1806,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7227:10:17","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1797,"mutability":"mutable","name":"owner","nameLocation":"7255:5:17","nodeType":"VariableDeclaration","scope":1806,"src":"7247:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1796,"name":"address","nodeType":"ElementaryTypeName","src":"7247:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1799,"mutability":"mutable","name":"minimumProvisionTokens","nameLocation":"7278:22:17","nodeType":"VariableDeclaration","scope":1806,"src":"7270:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint256","nodeType":"ElementaryTypeName","src":"7270:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1801,"mutability":"mutable","name":"maximumDelegationRatio","nameLocation":"7317:22:17","nodeType":"VariableDeclaration","scope":1806,"src":"7310:29:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1800,"name":"uint32","nodeType":"ElementaryTypeName","src":"7310:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"stakeToFeesRatio","nameLocation":"7357:16:17","nodeType":"VariableDeclaration","scope":1806,"src":"7349:24:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1802,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7237:142:17"},"returnParameters":{"id":1805,"nodeType":"ParameterList","parameters":[],"src":"7388:0:17"},"scope":2020,"src":"7218:171:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1807,"nodeType":"StructuredDocumentation","src":"7395:495:17","text":" @notice Force close a stale allocation\n @dev This function can be permissionlessly called when the allocation is stale. This\n ensures that rewards for other allocations are not diluted by an inactive allocation.\n Requirements:\n - Allocation must exist and be open\n - Allocation must be stale\n - Allocation cannot be altruistic\n Emits a {AllocationClosed} event.\n @param allocationId The id of the allocation"},"functionSelector":"ec9c218d","id":1812,"implemented":false,"kind":"function","modifiers":[],"name":"closeStaleAllocation","nameLocation":"7904:20:17","nodeType":"FunctionDefinition","parameters":{"id":1810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1809,"mutability":"mutable","name":"allocationId","nameLocation":"7933:12:17","nodeType":"VariableDeclaration","scope":1812,"src":"7925:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1808,"name":"address","nodeType":"ElementaryTypeName","src":"7925:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7924:22:17"},"returnParameters":{"id":1811,"nodeType":"ParameterList","parameters":[],"src":"7955:0:17"},"scope":2020,"src":"7895:61:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1813,"nodeType":"StructuredDocumentation","src":"7962:681:17","text":" @notice Change the amount of tokens in an allocation\n @dev Requirements:\n - The indexer must be registered\n - The provision must be valid according to the subgraph service rules\n - `tokens` must be different from the current allocation size\n - The indexer must have enough available tokens to allocate if they are upsizing the allocation\n Emits a {AllocationResized} event.\n See {AllocationManager-_resizeAllocation} for more details.\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param tokens The new amount of tokens in the allocation"},"functionSelector":"81e777a7","id":1822,"implemented":false,"kind":"function","modifiers":[],"name":"resizeAllocation","nameLocation":"8657:16:17","nodeType":"FunctionDefinition","parameters":{"id":1820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1815,"mutability":"mutable","name":"indexer","nameLocation":"8682:7:17","nodeType":"VariableDeclaration","scope":1822,"src":"8674:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1814,"name":"address","nodeType":"ElementaryTypeName","src":"8674:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1817,"mutability":"mutable","name":"allocationId","nameLocation":"8699:12:17","nodeType":"VariableDeclaration","scope":1822,"src":"8691:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1816,"name":"address","nodeType":"ElementaryTypeName","src":"8691:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1819,"mutability":"mutable","name":"tokens","nameLocation":"8721:6:17","nodeType":"VariableDeclaration","scope":1822,"src":"8713:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1818,"name":"uint256","nodeType":"ElementaryTypeName","src":"8713:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8673:55:17"},"returnParameters":{"id":1821,"nodeType":"ParameterList","parameters":[],"src":"8737:0:17"},"scope":2020,"src":"8648:90:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1823,"nodeType":"StructuredDocumentation","src":"8744:209:17","text":" @notice Sets a pause guardian\n @param pauseGuardian The address of the pause guardian\n @param allowed True if the pause guardian is allowed to pause the contract, false otherwise"},"functionSelector":"35577962","id":1830,"implemented":false,"kind":"function","modifiers":[],"name":"setPauseGuardian","nameLocation":"8967:16:17","nodeType":"FunctionDefinition","parameters":{"id":1828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1825,"mutability":"mutable","name":"pauseGuardian","nameLocation":"8992:13:17","nodeType":"VariableDeclaration","scope":1830,"src":"8984:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1824,"name":"address","nodeType":"ElementaryTypeName","src":"8984:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1827,"mutability":"mutable","name":"allowed","nameLocation":"9012:7:17","nodeType":"VariableDeclaration","scope":1830,"src":"9007:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1826,"name":"bool","nodeType":"ElementaryTypeName","src":"9007:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8983:37:17"},"returnParameters":{"id":1829,"nodeType":"ParameterList","parameters":[],"src":"9029:0:17"},"scope":2020,"src":"8958:72:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1831,"nodeType":"StructuredDocumentation","src":"9036:216:17","text":" @notice Sets the minimum amount of provisioned tokens required to create an allocation\n @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation"},"functionSelector":"832bc923","id":1836,"implemented":false,"kind":"function","modifiers":[],"name":"setMinimumProvisionTokens","nameLocation":"9266:25:17","nodeType":"FunctionDefinition","parameters":{"id":1834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1833,"mutability":"mutable","name":"minimumProvisionTokens","nameLocation":"9300:22:17","nodeType":"VariableDeclaration","scope":1836,"src":"9292:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9292:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9291:32:17"},"returnParameters":{"id":1835,"nodeType":"ParameterList","parameters":[],"src":"9332:0:17"},"scope":2020,"src":"9257:76:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1837,"nodeType":"StructuredDocumentation","src":"9339:103:17","text":" @notice Sets the delegation ratio\n @param delegationRatio The delegation ratio"},"functionSelector":"1dd42f60","id":1842,"implemented":false,"kind":"function","modifiers":[],"name":"setDelegationRatio","nameLocation":"9456:18:17","nodeType":"FunctionDefinition","parameters":{"id":1840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1839,"mutability":"mutable","name":"delegationRatio","nameLocation":"9482:15:17","nodeType":"VariableDeclaration","scope":1842,"src":"9475:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":1838,"name":"uint32","nodeType":"ElementaryTypeName","src":"9475:6:17","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"9474:24:17"},"returnParameters":{"id":1841,"nodeType":"ParameterList","parameters":[],"src":"9507:0:17"},"scope":2020,"src":"9447:61:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1843,"nodeType":"StructuredDocumentation","src":"9514:113:17","text":" @notice Sets the stake to fees ratio\n @param newStakeToFeesRatio The stake to fees ratio"},"functionSelector":"e6f50054","id":1848,"implemented":false,"kind":"function","modifiers":[],"name":"setStakeToFeesRatio","nameLocation":"9641:19:17","nodeType":"FunctionDefinition","parameters":{"id":1846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1845,"mutability":"mutable","name":"newStakeToFeesRatio","nameLocation":"9669:19:17","nodeType":"VariableDeclaration","scope":1848,"src":"9661:27:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1844,"name":"uint256","nodeType":"ElementaryTypeName","src":"9661:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9660:29:17"},"returnParameters":{"id":1847,"nodeType":"ParameterList","parameters":[],"src":"9698:0:17"},"scope":2020,"src":"9632:67:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1849,"nodeType":"StructuredDocumentation","src":"9705:193:17","text":" @notice Sets the max POI staleness\n See {AllocationManagerV1Storage-maxPOIStaleness} for more details.\n @param newMaxPoiStaleness The max POI staleness in seconds"},"functionSelector":"7aa31bce","id":1854,"implemented":false,"kind":"function","modifiers":[],"name":"setMaxPOIStaleness","nameLocation":"9912:18:17","nodeType":"FunctionDefinition","parameters":{"id":1852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"newMaxPoiStaleness","nameLocation":"9939:18:17","nodeType":"VariableDeclaration","scope":1854,"src":"9931:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1850,"name":"uint256","nodeType":"ElementaryTypeName","src":"9931:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9930:28:17"},"returnParameters":{"id":1853,"nodeType":"ParameterList","parameters":[],"src":"9967:0:17"},"scope":2020,"src":"9903:65:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1855,"nodeType":"StructuredDocumentation","src":"9974:177:17","text":" @notice Sets the curators payment cut for query fees\n @dev Emits a {CuratorCutSet} event\n @param curationCut The curation cut for the payment type"},"functionSelector":"7e89bac3","id":1860,"implemented":false,"kind":"function","modifiers":[],"name":"setCurationCut","nameLocation":"10165:14:17","nodeType":"FunctionDefinition","parameters":{"id":1858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1857,"mutability":"mutable","name":"curationCut","nameLocation":"10188:11:17","nodeType":"VariableDeclaration","scope":1860,"src":"10180:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10180:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10179:21:17"},"returnParameters":{"id":1859,"nodeType":"ParameterList","parameters":[],"src":"10209:0:17"},"scope":2020,"src":"10156:54:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1861,"nodeType":"StructuredDocumentation","src":"10216:198:17","text":" @notice Sets the data service payment cut for indexing fees\n @dev Emits a {IndexingFeesCutSet} event\n @param indexingFeesCut The indexing fees cut for the payment type"},"functionSelector":"df4a0c2c","id":1866,"implemented":false,"kind":"function","modifiers":[],"name":"setIndexingFeesCut","nameLocation":"10428:18:17","nodeType":"FunctionDefinition","parameters":{"id":1864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1863,"mutability":"mutable","name":"indexingFeesCut","nameLocation":"10455:15:17","nodeType":"VariableDeclaration","scope":1866,"src":"10447:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1862,"name":"uint256","nodeType":"ElementaryTypeName","src":"10447:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10446:25:17"},"returnParameters":{"id":1865,"nodeType":"ParameterList","parameters":[],"src":"10480:0:17"},"scope":2020,"src":"10419:62:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"10487:221:17","text":" @notice Sets the payments destination for an indexer to receive payments\n @dev Emits a {PaymentsDestinationSet} event\n @param newPaymentsDestination The address where payments should be sent"},"functionSelector":"6ccec5b8","id":1872,"implemented":false,"kind":"function","modifiers":[],"name":"setPaymentsDestination","nameLocation":"10722:22:17","nodeType":"FunctionDefinition","parameters":{"id":1870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"newPaymentsDestination","nameLocation":"10753:22:17","nodeType":"VariableDeclaration","scope":1872,"src":"10745:30:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1868,"name":"address","nodeType":"ElementaryTypeName","src":"10745:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10744:32:17"},"returnParameters":{"id":1871,"nodeType":"ParameterList","parameters":[],"src":"10785:0:17"},"scope":2020,"src":"10713:73:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1873,"nodeType":"StructuredDocumentation","src":"10792:273:17","text":" @notice Accept an indexing agreement.\n @param allocationId The id of the allocation\n @param signedRCA The signed recurring collector agreement (RCA) that the indexer accepts\n @return agreementId The ID of the accepted indexing agreement"},"functionSelector":"0b4baec7","id":1883,"implemented":false,"kind":"function","modifiers":[],"name":"acceptIndexingAgreement","nameLocation":"11079:23:17","nodeType":"FunctionDefinition","parameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1875,"mutability":"mutable","name":"allocationId","nameLocation":"11120:12:17","nodeType":"VariableDeclaration","scope":1883,"src":"11112:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1874,"name":"address","nodeType":"ElementaryTypeName","src":"11112:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1878,"mutability":"mutable","name":"signedRCA","nameLocation":"11181:9:17","nodeType":"VariableDeclaration","scope":1883,"src":"11142:48:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCA"},"typeName":{"id":1877,"nodeType":"UserDefinedTypeName","pathNode":{"id":1876,"name":"IRecurringCollector.SignedRCA","nameLocations":["11142:19:17","11162:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":643,"src":"11142:29:17"},"referencedDeclaration":643,"src":"11142:29:17","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCA_$643_storage_ptr","typeString":"struct IRecurringCollector.SignedRCA"}},"visibility":"internal"}],"src":"11102:94:17"},"returnParameters":{"id":1882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1883,"src":"11215:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1880,"name":"bytes16","nodeType":"ElementaryTypeName","src":"11215:7:17","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"11214:9:17"},"scope":2020,"src":"11070:154:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1884,"nodeType":"StructuredDocumentation","src":"11230:356:17","text":" @notice Accept an indexing agreement where the payer is a contract.\n @dev The payer must implement {IContractApprover} and authorize the RCA hash.\n @param allocationId The id of the allocation\n @param rca The recurring collection agreement parameters\n @return agreementId The ID of the accepted indexing agreement"},"functionSelector":"7cff6f63","id":1894,"implemented":false,"kind":"function","modifiers":[],"name":"acceptUnsignedIndexingAgreement","nameLocation":"11600:31:17","nodeType":"FunctionDefinition","parameters":{"id":1890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1886,"mutability":"mutable","name":"allocationId","nameLocation":"11649:12:17","nodeType":"VariableDeclaration","scope":1894,"src":"11641:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1885,"name":"address","nodeType":"ElementaryTypeName","src":"11641:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1889,"mutability":"mutable","name":"rca","nameLocation":"11729:3:17","nodeType":"VariableDeclaration","scope":1894,"src":"11671:61:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":1888,"nodeType":"UserDefinedTypeName","pathNode":{"id":1887,"name":"IRecurringCollector.RecurringCollectionAgreement","nameLocations":["11671:19:17","11691:28:17"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"11671:48:17"},"referencedDeclaration":667,"src":"11671:48:17","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"}],"src":"11631:107:17"},"returnParameters":{"id":1893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1894,"src":"11757:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1891,"name":"bytes16","nodeType":"ElementaryTypeName","src":"11757:7:17","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"11756:9:17"},"scope":2020,"src":"11591:175:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1895,"nodeType":"StructuredDocumentation","src":"11772:210:17","text":" @notice Update an indexing agreement.\n @param indexer The address of the indexer\n @param signedRCAU The signed recurring collector agreement update (RCAU) that the indexer accepts"},"functionSelector":"d8d497c5","id":1903,"implemented":false,"kind":"function","modifiers":[],"name":"updateIndexingAgreement","nameLocation":"11996:23:17","nodeType":"FunctionDefinition","parameters":{"id":1901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1897,"mutability":"mutable","name":"indexer","nameLocation":"12028:7:17","nodeType":"VariableDeclaration","scope":1903,"src":"12020:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1896,"name":"address","nodeType":"ElementaryTypeName","src":"12020:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1900,"mutability":"mutable","name":"signedRCAU","nameLocation":"12077:10:17","nodeType":"VariableDeclaration","scope":1903,"src":"12037:50:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_calldata_ptr","typeString":"struct IRecurringCollector.SignedRCAU"},"typeName":{"id":1899,"nodeType":"UserDefinedTypeName","pathNode":{"id":1898,"name":"IRecurringCollector.SignedRCAU","nameLocations":["12037:19:17","12057:10:17"],"nodeType":"IdentifierPath","referencedDeclaration":674,"src":"12037:30:17"},"referencedDeclaration":674,"src":"12037:30:17","typeDescriptions":{"typeIdentifier":"t_struct$_SignedRCAU_$674_storage_ptr","typeString":"struct IRecurringCollector.SignedRCAU"}},"visibility":"internal"}],"src":"12019:69:17"},"returnParameters":{"id":1902,"nodeType":"ParameterList","parameters":[],"src":"12097:0:17"},"scope":2020,"src":"11987:111:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1904,"nodeType":"StructuredDocumentation","src":"12104:290:17","text":" @notice Update an indexing agreement where the payer is a contract.\n @dev The payer must implement {IContractApprover} and authorize the RCAU hash.\n @param indexer The address of the indexer\n @param rcau The recurring collector agreement update to apply"},"functionSelector":"1d46b2ff","id":1912,"implemented":false,"kind":"function","modifiers":[],"name":"updateUnsignedIndexingAgreement","nameLocation":"12408:31:17","nodeType":"FunctionDefinition","parameters":{"id":1910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1906,"mutability":"mutable","name":"indexer","nameLocation":"12457:7:17","nodeType":"VariableDeclaration","scope":1912,"src":"12449:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1905,"name":"address","nodeType":"ElementaryTypeName","src":"12449:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1909,"mutability":"mutable","name":"rcau","nameLocation":"12538:4:17","nodeType":"VariableDeclaration","scope":1912,"src":"12474:68:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":1908,"nodeType":"UserDefinedTypeName","pathNode":{"id":1907,"name":"IRecurringCollector.RecurringCollectionAgreementUpdate","nameLocations":["12474:19:17","12494:34:17"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"12474:54:17"},"referencedDeclaration":694,"src":"12474:54:17","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"}],"src":"12439:109:17"},"returnParameters":{"id":1911,"nodeType":"ParameterList","parameters":[],"src":"12557:0:17"},"scope":2020,"src":"12399:159:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1913,"nodeType":"StructuredDocumentation","src":"12564:186:17","text":" @notice Cancel an indexing agreement by indexer / operator.\n @param indexer The address of the indexer\n @param agreementId The id of the indexing agreement"},"functionSelector":"8977a289","id":1920,"implemented":false,"kind":"function","modifiers":[],"name":"cancelIndexingAgreement","nameLocation":"12764:23:17","nodeType":"FunctionDefinition","parameters":{"id":1918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1915,"mutability":"mutable","name":"indexer","nameLocation":"12796:7:17","nodeType":"VariableDeclaration","scope":1920,"src":"12788:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1914,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1917,"mutability":"mutable","name":"agreementId","nameLocation":"12813:11:17","nodeType":"VariableDeclaration","scope":1920,"src":"12805:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1916,"name":"bytes16","nodeType":"ElementaryTypeName","src":"12805:7:17","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"12787:38:17"},"returnParameters":{"id":1919,"nodeType":"ParameterList","parameters":[],"src":"12834:0:17"},"scope":2020,"src":"12755:80:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1921,"nodeType":"StructuredDocumentation","src":"12841:133:17","text":" @notice Cancel an indexing agreement by payer / signer.\n @param agreementId The id of the indexing agreement"},"functionSelector":"e5920be9","id":1926,"implemented":false,"kind":"function","modifiers":[],"name":"cancelIndexingAgreementByPayer","nameLocation":"12988:30:17","nodeType":"FunctionDefinition","parameters":{"id":1924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1923,"mutability":"mutable","name":"agreementId","nameLocation":"13027:11:17","nodeType":"VariableDeclaration","scope":1926,"src":"13019:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1922,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13019:7:17","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"13018:21:17"},"returnParameters":{"id":1925,"nodeType":"ParameterList","parameters":[],"src":"13048:0:17"},"scope":2020,"src":"12979:70:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1927,"nodeType":"StructuredDocumentation","src":"13055:184:17","text":" @notice Get the indexing agreement for a given agreement ID.\n @param agreementId The id of the indexing agreement\n @return The indexing agreement details"},"functionSelector":"faf2d546","id":1935,"implemented":false,"kind":"function","modifiers":[],"name":"getIndexingAgreement","nameLocation":"13253:20:17","nodeType":"FunctionDefinition","parameters":{"id":1930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1929,"mutability":"mutable","name":"agreementId","nameLocation":"13291:11:17","nodeType":"VariableDeclaration","scope":1935,"src":"13283:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1928,"name":"bytes16","nodeType":"ElementaryTypeName","src":"13283:7:17","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"13273:35:17"},"returnParameters":{"id":1934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1935,"src":"13332:42:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementWrapper_$2084_memory_ptr","typeString":"struct IIndexingAgreement.AgreementWrapper"},"typeName":{"id":1932,"nodeType":"UserDefinedTypeName","pathNode":{"id":1931,"name":"IIndexingAgreement.AgreementWrapper","nameLocations":["13332:18:17","13351:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":2084,"src":"13332:35:17"},"referencedDeclaration":2084,"src":"13332:35:17","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementWrapper_$2084_storage_ptr","typeString":"struct IIndexingAgreement.AgreementWrapper"}},"visibility":"internal"}],"src":"13331:44:17"},"scope":2020,"src":"13244:132:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1936,"nodeType":"StructuredDocumentation","src":"13382:206:17","text":" @notice Gets the details of an allocation\n For legacy allocations use {getLegacyAllocation}\n @param allocationId The id of the allocation\n @return The allocation details"},"functionSelector":"0e022923","id":1944,"implemented":false,"kind":"function","modifiers":[],"name":"getAllocation","nameLocation":"13602:13:17","nodeType":"FunctionDefinition","parameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1938,"mutability":"mutable","name":"allocationId","nameLocation":"13624:12:17","nodeType":"VariableDeclaration","scope":1944,"src":"13616:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1937,"name":"address","nodeType":"ElementaryTypeName","src":"13616:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13615:22:17"},"returnParameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1944,"src":"13661:24:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2043_memory_ptr","typeString":"struct IAllocation.State"},"typeName":{"id":1941,"nodeType":"UserDefinedTypeName","pathNode":{"id":1940,"name":"IAllocation.State","nameLocations":["13661:11:17","13673:5:17"],"nodeType":"IdentifierPath","referencedDeclaration":2043,"src":"13661:17:17"},"referencedDeclaration":2043,"src":"13661:17:17","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2043_storage_ptr","typeString":"struct IAllocation.State"}},"visibility":"internal"}],"src":"13660:26:17"},"scope":2020,"src":"13593:94:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1945,"nodeType":"StructuredDocumentation","src":"13693:217:17","text":" @notice Gets the details of a legacy allocation\n For non-legacy allocations use {getAllocation}\n @param allocationId The id of the allocation\n @return The legacy allocation details"},"functionSelector":"6d9a3951","id":1953,"implemented":false,"kind":"function","modifiers":[],"name":"getLegacyAllocation","nameLocation":"13924:19:17","nodeType":"FunctionDefinition","parameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1947,"mutability":"mutable","name":"allocationId","nameLocation":"13952:12:17","nodeType":"VariableDeclaration","scope":1953,"src":"13944:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1946,"name":"address","nodeType":"ElementaryTypeName","src":"13944:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13943:22:17"},"returnParameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1953,"src":"13989:30:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2094_memory_ptr","typeString":"struct ILegacyAllocation.State"},"typeName":{"id":1950,"nodeType":"UserDefinedTypeName","pathNode":{"id":1949,"name":"ILegacyAllocation.State","nameLocations":["13989:17:17","14007:5:17"],"nodeType":"IdentifierPath","referencedDeclaration":2094,"src":"13989:23:17"},"referencedDeclaration":2094,"src":"13989:23:17","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2094_storage_ptr","typeString":"struct ILegacyAllocation.State"}},"visibility":"internal"}],"src":"13988:32:17"},"scope":2020,"src":"13915:106:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1954,"nodeType":"StructuredDocumentation","src":"14027:219:17","text":" @notice Encodes the allocation proof for EIP712 signing\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @return The encoded allocation proof"},"functionSelector":"ce56c98b","id":1963,"implemented":false,"kind":"function","modifiers":[],"name":"encodeAllocationProof","nameLocation":"14260:21:17","nodeType":"FunctionDefinition","parameters":{"id":1959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1956,"mutability":"mutable","name":"indexer","nameLocation":"14290:7:17","nodeType":"VariableDeclaration","scope":1963,"src":"14282:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1955,"name":"address","nodeType":"ElementaryTypeName","src":"14282:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1958,"mutability":"mutable","name":"allocationId","nameLocation":"14307:12:17","nodeType":"VariableDeclaration","scope":1963,"src":"14299:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1957,"name":"address","nodeType":"ElementaryTypeName","src":"14299:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14281:39:17"},"returnParameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1963,"src":"14344:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14344:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14343:9:17"},"scope":2020,"src":"14251:102:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1964,"nodeType":"StructuredDocumentation","src":"14359:187:17","text":" @notice Checks if an indexer is over-allocated\n @param allocationId The id of the allocation\n @return True if the indexer is over-allocated, false otherwise"},"functionSelector":"ba38f67d","id":1971,"implemented":false,"kind":"function","modifiers":[],"name":"isOverAllocated","nameLocation":"14560:15:17","nodeType":"FunctionDefinition","parameters":{"id":1967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1966,"mutability":"mutable","name":"allocationId","nameLocation":"14584:12:17","nodeType":"VariableDeclaration","scope":1971,"src":"14576:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1965,"name":"address","nodeType":"ElementaryTypeName","src":"14576:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14575:22:17"},"returnParameters":{"id":1970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1971,"src":"14621:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1968,"name":"bool","nodeType":"ElementaryTypeName","src":"14621:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14620:6:17"},"scope":2020,"src":"14551:76:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1972,"nodeType":"StructuredDocumentation","src":"14633:116:17","text":" @notice Gets the address of the dispute manager\n @return The address of the dispute manager"},"functionSelector":"db9bee46","id":1977,"implemented":false,"kind":"function","modifiers":[],"name":"getDisputeManager","nameLocation":"14763:17:17","nodeType":"FunctionDefinition","parameters":{"id":1973,"nodeType":"ParameterList","parameters":[],"src":"14780:2:17"},"returnParameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1977,"src":"14806:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"14806:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14805:9:17"},"scope":2020,"src":"14754:61:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1978,"nodeType":"StructuredDocumentation","src":"14821:128:17","text":" @notice Gets the address of the graph tally collector\n @return The address of the graph tally collector"},"functionSelector":"ebf6ddaf","id":1983,"implemented":false,"kind":"function","modifiers":[],"name":"getGraphTallyCollector","nameLocation":"14963:22:17","nodeType":"FunctionDefinition","parameters":{"id":1979,"nodeType":"ParameterList","parameters":[],"src":"14985:2:17"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1983,"src":"15011:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1980,"name":"address","nodeType":"ElementaryTypeName","src":"15011:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15010:9:17"},"scope":2020,"src":"14954:66:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1984,"nodeType":"StructuredDocumentation","src":"15026:120:17","text":" @notice Gets the address of the curation contract\n @return The address of the curation contract"},"functionSelector":"c0f47497","id":1989,"implemented":false,"kind":"function","modifiers":[],"name":"getCuration","nameLocation":"15160:11:17","nodeType":"FunctionDefinition","parameters":{"id":1985,"nodeType":"ParameterList","parameters":[],"src":"15171:2:17"},"returnParameters":{"id":1988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1989,"src":"15197:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1986,"name":"address","nodeType":"ElementaryTypeName","src":"15197:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15196:9:17"},"scope":2020,"src":"15151:55:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1990,"nodeType":"StructuredDocumentation","src":"15212:415:17","text":" @notice Gets the indexer details\n @dev Note that this storage getter actually returns a {Indexer} struct, but ethers v6 is not\n      good at dealing with dynamic types on return values.\n @param indexer The address of the indexer\n @return url The URL where the indexer can be reached at for queries\n @return geoHash The indexer's geo location, expressed as a geo hash"},"functionSelector":"4f793cdc","id":1999,"implemented":false,"kind":"function","modifiers":[],"name":"indexers","nameLocation":"15641:8:17","nodeType":"FunctionDefinition","parameters":{"id":1993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1992,"mutability":"mutable","name":"indexer","nameLocation":"15658:7:17","nodeType":"VariableDeclaration","scope":1999,"src":"15650:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1991,"name":"address","nodeType":"ElementaryTypeName","src":"15650:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15649:17:17"},"returnParameters":{"id":1998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1995,"mutability":"mutable","name":"url","nameLocation":"15704:3:17","nodeType":"VariableDeclaration","scope":1999,"src":"15690:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1994,"name":"string","nodeType":"ElementaryTypeName","src":"15690:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1997,"mutability":"mutable","name":"geoHash","nameLocation":"15723:7:17","nodeType":"VariableDeclaration","scope":1999,"src":"15709:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1996,"name":"string","nodeType":"ElementaryTypeName","src":"15709:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15689:42:17"},"scope":2020,"src":"15632:100:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2000,"nodeType":"StructuredDocumentation","src":"15738:94:17","text":" @notice Gets the stake to fees ratio\n @return The stake to fees ratio"},"functionSelector":"d07a7a84","id":2005,"implemented":false,"kind":"function","modifiers":[],"name":"stakeToFeesRatio","nameLocation":"15846:16:17","nodeType":"FunctionDefinition","parameters":{"id":2001,"nodeType":"ParameterList","parameters":[],"src":"15862:2:17"},"returnParameters":{"id":2004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2005,"src":"15888:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"15888:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15887:9:17"},"scope":2020,"src":"15837:60:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2006,"nodeType":"StructuredDocumentation","src":"15903:90:17","text":" @notice Gets the curation fees cut\n @return The curation fees cut"},"functionSelector":"138dea08","id":2011,"implemented":false,"kind":"function","modifiers":[],"name":"curationFeesCut","nameLocation":"16007:15:17","nodeType":"FunctionDefinition","parameters":{"id":2007,"nodeType":"ParameterList","parameters":[],"src":"16022:2:17"},"returnParameters":{"id":2010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2011,"src":"16048:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2008,"name":"uint256","nodeType":"ElementaryTypeName","src":"16048:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16047:9:17"},"scope":2020,"src":"15998:59:17","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2012,"nodeType":"StructuredDocumentation","src":"16063:145:17","text":" @notice Gets the payments destination\n @param indexer The address of the indexer\n @return The payments destination"},"functionSelector":"07e736d8","id":2019,"implemented":false,"kind":"function","modifiers":[],"name":"paymentsDestination","nameLocation":"16222:19:17","nodeType":"FunctionDefinition","parameters":{"id":2015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"mutability":"mutable","name":"indexer","nameLocation":"16250:7:17","nodeType":"VariableDeclaration","scope":2019,"src":"16242:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2013,"name":"address","nodeType":"ElementaryTypeName","src":"16242:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16241:17:17"},"returnParameters":{"id":2018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2019,"src":"16282:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2016,"name":"address","nodeType":"ElementaryTypeName","src":"16282:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16281:9:17"},"scope":2020,"src":"16213:78:17","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2021,"src":"1205:15088:17","usedErrors":[1726,1731,1734,1737,1742,1748,1755,1762,1769,1776,1781,1786,1789,1794],"usedEvents":[11,16,23,30,40,47,1699,1706,1711,1716,1721]}],"src":"45:16249:17"},"id":17},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IAllocation.sol","exportedSymbols":{"IAllocation":[2061]},"id":2062,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":2022,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"46:24:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IAllocation","contractDependencies":[],"contractKind":"interface","documentation":{"id":2023,"nodeType":"StructuredDocumentation","src":"72:294:18","text":" @title Interface for the {Allocation} library contract.\n @author Edge & Node\n @notice Interface for managing allocation data and operations\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":true,"id":2061,"linearizedBaseContracts":[2061],"name":"IAllocation","nameLocation":"377:11:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IAllocation.State","documentation":{"id":2024,"nodeType":"StructuredDocumentation","src":"395:723:18","text":" @notice Allocation details\n @param indexer The indexer that owns the allocation\n @param subgraphDeploymentId The subgraph deployment id the allocation is for\n @param tokens The number of tokens allocated\n @param createdAt The timestamp when the allocation was created\n @param closedAt The timestamp when the allocation was closed\n @param lastPOIPresentedAt The timestamp when the last POI was presented\n @param accRewardsPerAllocatedToken The accumulated rewards per allocated token\n @param accRewardsPending The accumulated rewards that are pending to be claimed due allocation resize\n @param createdAtEpoch The epoch when the allocation was created"},"id":2043,"members":[{"constant":false,"id":2026,"mutability":"mutable","name":"indexer","nameLocation":"1154:7:18","nodeType":"VariableDeclaration","scope":2043,"src":"1146:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2025,"name":"address","nodeType":"ElementaryTypeName","src":"1146:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2028,"mutability":"mutable","name":"subgraphDeploymentId","nameLocation":"1179:20:18","nodeType":"VariableDeclaration","scope":2043,"src":"1171:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1171:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2030,"mutability":"mutable","name":"tokens","nameLocation":"1217:6:18","nodeType":"VariableDeclaration","scope":2043,"src":"1209:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint256","nodeType":"ElementaryTypeName","src":"1209:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2032,"mutability":"mutable","name":"createdAt","nameLocation":"1241:9:18","nodeType":"VariableDeclaration","scope":2043,"src":"1233:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2031,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2034,"mutability":"mutable","name":"closedAt","nameLocation":"1268:8:18","nodeType":"VariableDeclaration","scope":2043,"src":"1260:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2033,"name":"uint256","nodeType":"ElementaryTypeName","src":"1260:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2036,"mutability":"mutable","name":"lastPOIPresentedAt","nameLocation":"1294:18:18","nodeType":"VariableDeclaration","scope":2043,"src":"1286:26:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2035,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2038,"mutability":"mutable","name":"accRewardsPerAllocatedToken","nameLocation":"1330:27:18","nodeType":"VariableDeclaration","scope":2043,"src":"1322:35:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2037,"name":"uint256","nodeType":"ElementaryTypeName","src":"1322:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2040,"mutability":"mutable","name":"accRewardsPending","nameLocation":"1375:17:18","nodeType":"VariableDeclaration","scope":2043,"src":"1367:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2039,"name":"uint256","nodeType":"ElementaryTypeName","src":"1367:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2042,"mutability":"mutable","name":"createdAtEpoch","nameLocation":"1410:14:18","nodeType":"VariableDeclaration","scope":2043,"src":"1402:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2041,"name":"uint256","nodeType":"ElementaryTypeName","src":"1402:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"State","nameLocation":"1130:5:18","nodeType":"StructDefinition","scope":2061,"src":"1123:308:18","visibility":"public"},{"documentation":{"id":2044,"nodeType":"StructuredDocumentation","src":"1437:138:18","text":" @notice Thrown when attempting to create an allocation with an existing id\n @param allocationId The allocation id"},"errorSelector":"0bc4def5","id":2048,"name":"AllocationAlreadyExists","nameLocation":"1586:23:18","nodeType":"ErrorDefinition","parameters":{"id":2047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"allocationId","nameLocation":"1618:12:18","nodeType":"VariableDeclaration","scope":2048,"src":"1610:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2045,"name":"address","nodeType":"ElementaryTypeName","src":"1610:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1609:22:18"},"src":"1580:52:18"},{"documentation":{"id":2049,"nodeType":"StructuredDocumentation","src":"1638:143:18","text":" @notice Thrown when trying to perform an operation on a non-existent allocation\n @param allocationId The allocation id"},"errorSelector":"42daadaf","id":2053,"name":"AllocationDoesNotExist","nameLocation":"1792:22:18","nodeType":"ErrorDefinition","parameters":{"id":2052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2051,"mutability":"mutable","name":"allocationId","nameLocation":"1823:12:18","nodeType":"VariableDeclaration","scope":2053,"src":"1815:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2050,"name":"address","nodeType":"ElementaryTypeName","src":"1815:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1814:22:18"},"src":"1786:51:18"},{"documentation":{"id":2054,"nodeType":"StructuredDocumentation","src":"1843:205:18","text":" @notice Thrown when trying to perform an operation on a closed allocation\n @param allocationId The allocation id\n @param closedAt The timestamp when the allocation was closed"},"errorSelector":"61b66e0d","id":2060,"name":"AllocationClosed","nameLocation":"2059:16:18","nodeType":"ErrorDefinition","parameters":{"id":2059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2056,"mutability":"mutable","name":"allocationId","nameLocation":"2084:12:18","nodeType":"VariableDeclaration","scope":2060,"src":"2076:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2055,"name":"address","nodeType":"ElementaryTypeName","src":"2076:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2058,"mutability":"mutable","name":"closedAt","nameLocation":"2106:8:18","nodeType":"VariableDeclaration","scope":2060,"src":"2098:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2098:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2075:40:18"},"src":"2053:63:18"}],"scope":2062,"src":"367:1751:18","usedErrors":[2048,2053,2060],"usedEvents":[]}],"src":"46:2073:18"},"id":18},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/IIndexingAgreement.sol","exportedSymbols":{"IIndexingAgreement":[2085],"IRecurringCollector":[1076]},"id":2086,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":2063,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"46:24:19"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol","file":"../../horizon/IRecurringCollector.sol","id":2065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2086,"sourceUnit":1077,"src":"72:76:19","symbolAliases":[{"foreign":{"id":2064,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"81:19:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IIndexingAgreement","contractDependencies":[],"contractKind":"interface","documentation":{"id":2066,"nodeType":"StructuredDocumentation","src":"150:309:19","text":" @title Interface for the {IndexingAgreement} library contract.\n @author Edge & Node\n @notice Interface for managing indexing agreement data and operations\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":true,"id":2085,"linearizedBaseContracts":[2085],"name":"IIndexingAgreement","nameLocation":"470:18:19","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IIndexingAgreement.IndexingAgreementVersion","documentation":{"id":2067,"nodeType":"StructuredDocumentation","src":"495:51:19","text":"@notice Versions of Indexing Agreement Metadata"},"id":2069,"members":[{"id":2068,"name":"V1","nameLocation":"591:2:19","nodeType":"EnumValue","src":"591:2:19"}],"name":"IndexingAgreementVersion","nameLocation":"556:24:19","nodeType":"EnumDefinition","src":"551:48:19"},{"canonicalName":"IIndexingAgreement.State","documentation":{"id":2070,"nodeType":"StructuredDocumentation","src":"605:147:19","text":" @notice Indexer Agreement Data\n @param allocationId The allocation ID\n @param version The indexing agreement version"},"id":2076,"members":[{"constant":false,"id":2072,"mutability":"mutable","name":"allocationId","nameLocation":"788:12:19","nodeType":"VariableDeclaration","scope":2076,"src":"780:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2071,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2075,"mutability":"mutable","name":"version","nameLocation":"835:7:19","nodeType":"VariableDeclaration","scope":2076,"src":"810:32:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IndexingAgreementVersion_$2069","typeString":"enum IIndexingAgreement.IndexingAgreementVersion"},"typeName":{"id":2074,"nodeType":"UserDefinedTypeName","pathNode":{"id":2073,"name":"IndexingAgreementVersion","nameLocations":["810:24:19"],"nodeType":"IdentifierPath","referencedDeclaration":2069,"src":"810:24:19"},"referencedDeclaration":2069,"src":"810:24:19","typeDescriptions":{"typeIdentifier":"t_enum$_IndexingAgreementVersion_$2069","typeString":"enum IIndexingAgreement.IndexingAgreementVersion"}},"visibility":"internal"}],"name":"State","nameLocation":"764:5:19","nodeType":"StructDefinition","scope":2085,"src":"757:92:19","visibility":"public"},{"canonicalName":"IIndexingAgreement.AgreementWrapper","documentation":{"id":2077,"nodeType":"StructuredDocumentation","src":"855:201:19","text":" @notice Wrapper for Indexing Agreement and Collector Agreement Data\n @param agreement The indexing agreement state\n @param collectorAgreement The collector agreement data"},"id":2084,"members":[{"constant":false,"id":2080,"mutability":"mutable","name":"agreement","nameLocation":"1101:9:19","nodeType":"VariableDeclaration","scope":2084,"src":"1095:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2076_storage_ptr","typeString":"struct IIndexingAgreement.State"},"typeName":{"id":2079,"nodeType":"UserDefinedTypeName","pathNode":{"id":2078,"name":"State","nameLocations":["1095:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":2076,"src":"1095:5:19"},"referencedDeclaration":2076,"src":"1095:5:19","typeDescriptions":{"typeIdentifier":"t_struct$_State_$2076_storage_ptr","typeString":"struct IIndexingAgreement.State"}},"visibility":"internal"},{"constant":false,"id":2083,"mutability":"mutable","name":"collectorAgreement","nameLocation":"1154:18:19","nodeType":"VariableDeclaration","scope":2084,"src":"1120:52:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":2082,"nodeType":"UserDefinedTypeName","pathNode":{"id":2081,"name":"IRecurringCollector.AgreementData","nameLocations":["1120:19:19","1140:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"1120:33:19"},"referencedDeclaration":723,"src":"1120:33:19","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"name":"AgreementWrapper","nameLocation":"1068:16:19","nodeType":"StructDefinition","scope":2085,"src":"1061:118:19","visibility":"public"}],"scope":2086,"src":"460:721:19","usedErrors":[],"usedEvents":[]}],"src":"46:1136:19"},"id":19},"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol":{"ast":{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/internal/ILegacyAllocation.sol","exportedSymbols":{"ILegacyAllocation":[2100]},"id":2101,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":2087,"literals":["solidity","^","0.8",".22"],"nodeType":"PragmaDirective","src":"46:24:20"},{"abstract":false,"baseContracts":[],"canonicalName":"ILegacyAllocation","contractDependencies":[],"contractKind":"interface","documentation":{"id":2088,"nodeType":"StructuredDocumentation","src":"72:292:20","text":" @title Interface for the {LegacyAllocation} library contract.\n @author Edge & Node\n @notice Interface for managing legacy allocation data\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":true,"id":2100,"linearizedBaseContracts":[2100],"name":"ILegacyAllocation","nameLocation":"375:17:20","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ILegacyAllocation.State","documentation":{"id":2089,"nodeType":"StructuredDocumentation","src":"399:450:20","text":" @notice Legacy allocation details\n @dev Note that we are only storing the indexer and subgraphDeploymentId. The main point of tracking legacy allocations\n is to prevent them from being re used on the Subgraph Service. We don't need to store the rest of the allocation details.\n @param indexer The indexer that owns the allocation\n @param subgraphDeploymentId The subgraph deployment id the allocation is for"},"id":2094,"members":[{"constant":false,"id":2091,"mutability":"mutable","name":"indexer","nameLocation":"885:7:20","nodeType":"VariableDeclaration","scope":2094,"src":"877:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2090,"name":"address","nodeType":"ElementaryTypeName","src":"877:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2093,"mutability":"mutable","name":"subgraphDeploymentId","nameLocation":"910:20:20","nodeType":"VariableDeclaration","scope":2094,"src":"902:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"902:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"State","nameLocation":"861:5:20","nodeType":"StructDefinition","scope":2100,"src":"854:83:20","visibility":"public"},{"documentation":{"id":2095,"nodeType":"StructuredDocumentation","src":"943:145:20","text":" @notice Thrown when attempting to create an allocation with an existing legacy id\n @param allocationId The allocation id"},"errorSelector":"b5f497c4","id":2099,"name":"LegacyAllocationAlreadyExists","nameLocation":"1099:29:20","nodeType":"ErrorDefinition","parameters":{"id":2098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2097,"mutability":"mutable","name":"allocationId","nameLocation":"1137:12:20","nodeType":"VariableDeclaration","scope":2099,"src":"1129:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2096,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1128:22:20"},"src":"1093:58:20"}],"scope":2101,"src":"365:788:20","usedErrors":[2099],"usedEvents":[]}],"src":"46:1108:20"},"id":20},"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol","exportedSymbols":{"AccessControlUpgradeable":[2465],"ContextUpgradeable":[3005],"ERC165Upgradeable":[3205],"IAccessControl":[3288],"IERC165":[5012],"Initializable":[2959]},"id":2466,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2102,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:21"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":2104,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2466,"sourceUnit":3289,"src":"134:81:21","symbolAliases":[{"foreign":{"id":2103,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"142:14:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":2106,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2466,"sourceUnit":3006,"src":"216:67:21","symbolAliases":[{"foreign":{"id":2105,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"224:18:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":2108,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2466,"sourceUnit":5013,"src":"284:80:21","symbolAliases":[{"foreign":{"id":2107,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"292:7:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol","file":"../utils/introspection/ERC165Upgradeable.sol","id":2110,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2466,"sourceUnit":3206,"src":"365:79:21","symbolAliases":[{"foreign":{"id":2109,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"373:17:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2112,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2466,"sourceUnit":2960,"src":"445:63:21","symbolAliases":[{"foreign":{"id":2111,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"453:13:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2114,"name":"Initializable","nameLocations":["2217:13:21"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"2217:13:21"},"id":2115,"nodeType":"InheritanceSpecifier","src":"2217:13:21"},{"baseName":{"id":2116,"name":"ContextUpgradeable","nameLocations":["2232:18:21"],"nodeType":"IdentifierPath","referencedDeclaration":3005,"src":"2232:18:21"},"id":2117,"nodeType":"InheritanceSpecifier","src":"2232:18:21"},{"baseName":{"id":2118,"name":"IAccessControl","nameLocations":["2252:14:21"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"2252:14:21"},"id":2119,"nodeType":"InheritanceSpecifier","src":"2252:14:21"},{"baseName":{"id":2120,"name":"ERC165Upgradeable","nameLocations":["2268:17:21"],"nodeType":"IdentifierPath","referencedDeclaration":3205,"src":"2268:17:21"},"id":2121,"nodeType":"InheritanceSpecifier","src":"2268:17:21"}],"canonicalName":"AccessControlUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2113,"nodeType":"StructuredDocumentation","src":"510:1660:21","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":2465,"linearizedBaseContracts":[2465,3205,5012,3288,3005,2959],"name":"AccessControlUpgradeable","nameLocation":"2189:24:21","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControlUpgradeable.RoleData","id":2128,"members":[{"constant":false,"id":2125,"mutability":"mutable","name":"hasRole","nameLocation":"2351:7:21","nodeType":"VariableDeclaration","scope":2128,"src":"2318:40:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":2124,"keyName":"account","keyNameLocation":"2334:7:21","keyType":{"id":2122,"name":"address","nodeType":"ElementaryTypeName","src":"2326:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2318:32:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2123,"name":"bool","nodeType":"ElementaryTypeName","src":"2345:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":2127,"mutability":"mutable","name":"adminRole","nameLocation":"2376:9:21","nodeType":"VariableDeclaration","scope":2128,"src":"2368:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2368:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2299:8:21","nodeType":"StructDefinition","scope":2465,"src":"2292:100:21","visibility":"public"},{"constant":true,"functionSelector":"a217fddf","id":2131,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2422:18:21","nodeType":"VariableDeclaration","scope":2465,"src":"2398:49:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2398:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2443:4:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"canonicalName":"AccessControlUpgradeable.AccessControlStorage","documentation":{"id":2132,"nodeType":"StructuredDocumentation","src":"2455:71:21","text":"@custom:storage-location erc7201:openzeppelin.storage.AccessControl"},"id":2138,"members":[{"constant":false,"id":2137,"mutability":"mutable","name":"_roles","nameLocation":"2603:6:21","nodeType":"VariableDeclaration","scope":2138,"src":"2569:40:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"typeName":{"id":2136,"keyName":"role","keyNameLocation":"2585:4:21","keyType":{"id":2133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2577:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2569:33:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2135,"nodeType":"UserDefinedTypeName","pathNode":{"id":2134,"name":"RoleData","nameLocations":["2593:8:21"],"nodeType":"IdentifierPath","referencedDeclaration":2128,"src":"2593:8:21"},"referencedDeclaration":2128,"src":"2593:8:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage_ptr","typeString":"struct AccessControlUpgradeable.RoleData"}}},"visibility":"internal"}],"name":"AccessControlStorage","nameLocation":"2538:20:21","nodeType":"StructDefinition","scope":2465,"src":"2531:85:21","visibility":"public"},{"constant":true,"id":2141,"mutability":"constant","name":"AccessControlStorageLocation","nameLocation":"2764:28:21","nodeType":"VariableDeclaration","scope":2465,"src":"2739:122:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2739:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830326464376263376465633464636565646461373735653538646435343165303861313136633663353338313563306264303238313932663762363236383030","id":2140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2795:66:21","typeDescriptions":{"typeIdentifier":"t_rational_1295953201772911215391058989745868821651057887752387839782086074958115661824_by_1","typeString":"int_const 1295...(68 digits omitted)...1824"},"value":"0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800"},"visibility":"private"},{"body":{"id":2148,"nodeType":"Block","src":"2958:87:21","statements":[{"AST":{"nativeSrc":"2977:62:21","nodeType":"YulBlock","src":"2977:62:21","statements":[{"nativeSrc":"2991:38:21","nodeType":"YulAssignment","src":"2991:38:21","value":{"name":"AccessControlStorageLocation","nativeSrc":"3001:28:21","nodeType":"YulIdentifier","src":"3001:28:21"},"variableNames":[{"name":"$.slot","nativeSrc":"2991:6:21","nodeType":"YulIdentifier","src":"2991:6:21"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2145,"isOffset":false,"isSlot":true,"src":"2991:6:21","suffix":"slot","valueSize":1},{"declaration":2141,"isOffset":false,"isSlot":false,"src":"3001:28:21","valueSize":1}],"id":2147,"nodeType":"InlineAssembly","src":"2968:71:21"}]},"id":2149,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccessControlStorage","nameLocation":"2877:24:21","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[],"src":"2901:2:21"},"returnParameters":{"id":2146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2145,"mutability":"mutable","name":"$","nameLocation":"2955:1:21","nodeType":"VariableDeclaration","scope":2149,"src":"2926:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2144,"nodeType":"UserDefinedTypeName","pathNode":{"id":2143,"name":"AccessControlStorage","nameLocations":["2926:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"2926:20:21"},"referencedDeclaration":2138,"src":"2926:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"src":"2925:32:21"},"scope":2465,"src":"2868:177:21","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2159,"nodeType":"Block","src":"3262:44:21","statements":[{"expression":{"arguments":[{"id":2155,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"3283:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2154,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[2232,2253],"referencedDeclaration":2232,"src":"3272:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3272:16:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2157,"nodeType":"ExpressionStatement","src":"3272:16:21"},{"id":2158,"nodeType":"PlaceholderStatement","src":"3298:1:21"}]},"documentation":{"id":2150,"nodeType":"StructuredDocumentation","src":"3051:174:21","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."},"id":2160,"name":"onlyRole","nameLocation":"3239:8:21","nodeType":"ModifierDefinition","parameters":{"id":2153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2152,"mutability":"mutable","name":"role","nameLocation":"3256:4:21","nodeType":"VariableDeclaration","scope":2160,"src":"3248:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3248:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3247:14:21"},"src":"3230:76:21","virtual":false,"visibility":"internal"},{"body":{"id":2165,"nodeType":"Block","src":"3370:7:21","statements":[]},"id":2166,"implemented":true,"kind":"function","modifiers":[{"id":2163,"kind":"modifierInvocation","modifierName":{"id":2162,"name":"onlyInitializing","nameLocations":["3353:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"3353:16:21"},"nodeType":"ModifierInvocation","src":"3353:16:21"}],"name":"__AccessControl_init","nameLocation":"3321:20:21","nodeType":"FunctionDefinition","parameters":{"id":2161,"nodeType":"ParameterList","parameters":[],"src":"3341:2:21"},"returnParameters":{"id":2164,"nodeType":"ParameterList","parameters":[],"src":"3370:0:21"},"scope":2465,"src":"3312:65:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2171,"nodeType":"Block","src":"3451:7:21","statements":[]},"id":2172,"implemented":true,"kind":"function","modifiers":[{"id":2169,"kind":"modifierInvocation","modifierName":{"id":2168,"name":"onlyInitializing","nameLocations":["3434:16:21"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"3434:16:21"},"nodeType":"ModifierInvocation","src":"3434:16:21"}],"name":"__AccessControl_init_unchained","nameLocation":"3392:30:21","nodeType":"FunctionDefinition","parameters":{"id":2167,"nodeType":"ParameterList","parameters":[],"src":"3422:2:21"},"returnParameters":{"id":2170,"nodeType":"ParameterList","parameters":[],"src":"3451:0:21"},"scope":2465,"src":"3383:75:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3204],"body":{"id":2193,"nodeType":"Block","src":"3582:111:21","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2181,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"3599:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2183,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"3619:14:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$3288_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$3288_$","typeString":"type(contract IAccessControl)"}],"id":2182,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3614:4:21","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$3288","typeString":"type(contract IAccessControl)"}},"id":2185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3635:11:21","memberName":"interfaceId","nodeType":"MemberAccess","src":"3614:32:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3599:47:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2189,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"3674:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":2187,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3650:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlUpgradeable_$2465_$","typeString":"type(contract super AccessControlUpgradeable)"}},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3656:17:21","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3204,"src":"3650:23:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":2190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:36:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3599:87:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2180,"id":2192,"nodeType":"Return","src":"3592:94:21"}]},"documentation":{"id":2173,"nodeType":"StructuredDocumentation","src":"3463:23:21","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":2194,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3500:17:21","nodeType":"FunctionDefinition","overrides":{"id":2177,"nodeType":"OverrideSpecifier","overrides":[],"src":"3558:8:21"},"parameters":{"id":2176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2175,"mutability":"mutable","name":"interfaceId","nameLocation":"3525:11:21","nodeType":"VariableDeclaration","scope":2194,"src":"3518:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2174,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3518:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3517:20:21"},"returnParameters":{"id":2180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2194,"src":"3576:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2178,"name":"bool","nodeType":"ElementaryTypeName","src":"3576:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3575:6:21"},"scope":2465,"src":"3491:202:21","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3255],"body":{"id":2218,"nodeType":"Block","src":"3863:124:21","statements":[{"assignments":[2206],"declarations":[{"constant":false,"id":2206,"mutability":"mutable","name":"$","nameLocation":"3902:1:21","nodeType":"VariableDeclaration","scope":2218,"src":"3873:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2205,"nodeType":"UserDefinedTypeName","pathNode":{"id":2204,"name":"AccessControlStorage","nameLocations":["3873:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"3873:20:21"},"referencedDeclaration":2138,"src":"3873:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":2209,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2207,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"3906:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$2138_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3906:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3873:59:21"},{"expression":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":2210,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2206,"src":"3949:1:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":2211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3951:6:21","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":2137,"src":"3949:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":2213,"indexExpression":{"id":2212,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"3958:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3949:14:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":2214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3964:7:21","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"3949:22:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2216,"indexExpression":{"id":2215,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"3972:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3949:31:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2203,"id":2217,"nodeType":"Return","src":"3942:38:21"}]},"documentation":{"id":2195,"nodeType":"StructuredDocumentation","src":"3699:76:21","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":2219,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"3789:7:21","nodeType":"FunctionDefinition","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2197,"mutability":"mutable","name":"role","nameLocation":"3805:4:21","nodeType":"VariableDeclaration","scope":2219,"src":"3797:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3797:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"account","nameLocation":"3819:7:21","nodeType":"VariableDeclaration","scope":2219,"src":"3811:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2198,"name":"address","nodeType":"ElementaryTypeName","src":"3811:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3796:31:21"},"returnParameters":{"id":2203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2219,"src":"3857:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2201,"name":"bool","nodeType":"ElementaryTypeName","src":"3857:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3856:6:21"},"scope":2465,"src":"3780:207:21","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2231,"nodeType":"Block","src":"4252:47:21","statements":[{"expression":{"arguments":[{"id":2226,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2222,"src":"4273:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2227,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"4279:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4279:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2225,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[2232,2253],"referencedDeclaration":2253,"src":"4262:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2230,"nodeType":"ExpressionStatement","src":"4262:30:21"}]},"documentation":{"id":2220,"nodeType":"StructuredDocumentation","src":"3993:198:21","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."},"id":2232,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"4205:10:21","nodeType":"FunctionDefinition","parameters":{"id":2223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2222,"mutability":"mutable","name":"role","nameLocation":"4224:4:21","nodeType":"VariableDeclaration","scope":2232,"src":"4216:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2221,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4216:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4215:14:21"},"returnParameters":{"id":2224,"nodeType":"ParameterList","parameters":[],"src":"4252:0:21"},"scope":2465,"src":"4196:103:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2252,"nodeType":"Block","src":"4502:124:21","statements":[{"condition":{"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4516:23:21","subExpression":{"arguments":[{"id":2241,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"4525:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2242,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"4531:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2240,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"4517:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4517:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2251,"nodeType":"IfStatement","src":"4512:108:21","trueBody":{"id":2250,"nodeType":"Block","src":"4541:79:21","statements":[{"errorCall":{"arguments":[{"id":2246,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"4595:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2247,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"4604:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2245,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"4562:32:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4562:47:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2249,"nodeType":"RevertStatement","src":"4555:54:21"}]}}]},"documentation":{"id":2233,"nodeType":"StructuredDocumentation","src":"4305:119:21","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."},"id":2253,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"4438:10:21","nodeType":"FunctionDefinition","parameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2235,"mutability":"mutable","name":"role","nameLocation":"4457:4:21","nodeType":"VariableDeclaration","scope":2253,"src":"4449:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4449:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2237,"mutability":"mutable","name":"account","nameLocation":"4471:7:21","nodeType":"VariableDeclaration","scope":2253,"src":"4463:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2236,"name":"address","nodeType":"ElementaryTypeName","src":"4463:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4448:31:21"},"returnParameters":{"id":2239,"nodeType":"ParameterList","parameters":[],"src":"4502:0:21"},"scope":2465,"src":"4429:197:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[3263],"body":{"id":2273,"nodeType":"Block","src":"4881:117:21","statements":[{"assignments":[2263],"declarations":[{"constant":false,"id":2263,"mutability":"mutable","name":"$","nameLocation":"4920:1:21","nodeType":"VariableDeclaration","scope":2273,"src":"4891:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2262,"nodeType":"UserDefinedTypeName","pathNode":{"id":2261,"name":"AccessControlStorage","nameLocations":["4891:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"4891:20:21"},"referencedDeclaration":2138,"src":"4891:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":2266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2264,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"4924:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$2138_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":2265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4924:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4891:59:21"},{"expression":{"expression":{"baseExpression":{"expression":{"id":2267,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"4967:1:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":2268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4969:6:21","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":2137,"src":"4967:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":2270,"indexExpression":{"id":2269,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2256,"src":"4976:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:14:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":2271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4982:9:21","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":2127,"src":"4967:24:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2260,"id":2272,"nodeType":"Return","src":"4960:31:21"}]},"documentation":{"id":2254,"nodeType":"StructuredDocumentation","src":"4632:170:21","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":2274,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4816:12:21","nodeType":"FunctionDefinition","parameters":{"id":2257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2256,"mutability":"mutable","name":"role","nameLocation":"4837:4:21","nodeType":"VariableDeclaration","scope":2274,"src":"4829:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4829:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4828:14:21"},"returnParameters":{"id":2260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2274,"src":"4872:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4872:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4871:9:21"},"scope":2465,"src":"4807:191:21","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3271],"body":{"id":2292,"nodeType":"Block","src":"5388:42:21","statements":[{"expression":{"arguments":[{"id":2288,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"5409:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2289,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2279,"src":"5415:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2287,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"5398:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:25:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2291,"nodeType":"ExpressionStatement","src":"5398:25:21"}]},"documentation":{"id":2275,"nodeType":"StructuredDocumentation","src":"5004:285:21","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":2293,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":2283,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"5381:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2282,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"5368:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5368:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2285,"kind":"modifierInvocation","modifierName":{"id":2281,"name":"onlyRole","nameLocations":["5359:8:21"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"5359:8:21"},"nodeType":"ModifierInvocation","src":"5359:28:21"}],"name":"grantRole","nameLocation":"5303:9:21","nodeType":"FunctionDefinition","parameters":{"id":2280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2277,"mutability":"mutable","name":"role","nameLocation":"5321:4:21","nodeType":"VariableDeclaration","scope":2293,"src":"5313:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5313:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2279,"mutability":"mutable","name":"account","nameLocation":"5335:7:21","nodeType":"VariableDeclaration","scope":2293,"src":"5327:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2278,"name":"address","nodeType":"ElementaryTypeName","src":"5327:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5312:31:21"},"returnParameters":{"id":2286,"nodeType":"ParameterList","parameters":[],"src":"5388:0:21"},"scope":2465,"src":"5294:136:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3279],"body":{"id":2311,"nodeType":"Block","src":"5805:43:21","statements":[{"expression":{"arguments":[{"id":2307,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"5827:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2308,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2298,"src":"5833:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2306,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"5815:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5815:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2310,"nodeType":"ExpressionStatement","src":"5815:26:21"}]},"documentation":{"id":2294,"nodeType":"StructuredDocumentation","src":"5436:269:21","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":2312,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":2302,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2296,"src":"5798:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2301,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"5785:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5785:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2304,"kind":"modifierInvocation","modifierName":{"id":2300,"name":"onlyRole","nameLocations":["5776:8:21"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"5776:8:21"},"nodeType":"ModifierInvocation","src":"5776:28:21"}],"name":"revokeRole","nameLocation":"5719:10:21","nodeType":"FunctionDefinition","parameters":{"id":2299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2296,"mutability":"mutable","name":"role","nameLocation":"5738:4:21","nodeType":"VariableDeclaration","scope":2312,"src":"5730:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5730:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2298,"mutability":"mutable","name":"account","nameLocation":"5752:7:21","nodeType":"VariableDeclaration","scope":2312,"src":"5744:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2297,"name":"address","nodeType":"ElementaryTypeName","src":"5744:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5729:31:21"},"returnParameters":{"id":2305,"nodeType":"ParameterList","parameters":[],"src":"5805:0:21"},"scope":2465,"src":"5710:138:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3287],"body":{"id":2334,"nodeType":"Block","src":"6475:166:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2320,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"6489:18:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2321,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"6511:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6511:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6489:34:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2328,"nodeType":"IfStatement","src":"6485:102:21","trueBody":{"id":2327,"nodeType":"Block","src":"6525:62:21","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2324,"name":"AccessControlBadConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"6546:28:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6546:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2326,"nodeType":"RevertStatement","src":"6539:37:21"}]}},{"expression":{"arguments":[{"id":2330,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2315,"src":"6609:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2331,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"6615:18:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2329,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"6597:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6597:37:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2333,"nodeType":"ExpressionStatement","src":"6597:37:21"}]},"documentation":{"id":2313,"nodeType":"StructuredDocumentation","src":"5854:537:21","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":2335,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"6405:12:21","nodeType":"FunctionDefinition","parameters":{"id":2318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2315,"mutability":"mutable","name":"role","nameLocation":"6426:4:21","nodeType":"VariableDeclaration","scope":2335,"src":"6418:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6418:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2317,"mutability":"mutable","name":"callerConfirmation","nameLocation":"6440:18:21","nodeType":"VariableDeclaration","scope":2335,"src":"6432:26:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2316,"name":"address","nodeType":"ElementaryTypeName","src":"6432:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6417:42:21"},"returnParameters":{"id":2319,"nodeType":"ParameterList","parameters":[],"src":"6475:0:21"},"scope":2465,"src":"6396:245:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2370,"nodeType":"Block","src":"6839:245:21","statements":[{"assignments":[2345],"declarations":[{"constant":false,"id":2345,"mutability":"mutable","name":"$","nameLocation":"6878:1:21","nodeType":"VariableDeclaration","scope":2370,"src":"6849:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2344,"nodeType":"UserDefinedTypeName","pathNode":{"id":2343,"name":"AccessControlStorage","nameLocations":["6849:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"6849:20:21"},"referencedDeclaration":2138,"src":"6849:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":2348,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2346,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"6882:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$2138_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6882:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6849:59:21"},{"assignments":[2350],"declarations":[{"constant":false,"id":2350,"mutability":"mutable","name":"previousAdminRole","nameLocation":"6926:17:21","nodeType":"VariableDeclaration","scope":2370,"src":"6918:25:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6918:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2354,"initialValue":{"arguments":[{"id":2352,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"6959:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2351,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"6946:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6946:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6918:46:21"},{"expression":{"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":2355,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"6974:1:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":2358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6976:6:21","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":2137,"src":"6974:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":2359,"indexExpression":{"id":2357,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"6983:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6974:14:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":2360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6989:9:21","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":2127,"src":"6974:24:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2361,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2340,"src":"7001:9:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6974:36:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2363,"nodeType":"ExpressionStatement","src":"6974:36:21"},{"eventCall":{"arguments":[{"id":2365,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2338,"src":"7042:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2366,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2350,"src":"7048:17:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2367,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2340,"src":"7067:9:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2364,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"7025:16:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":2368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7025:52:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2369,"nodeType":"EmitStatement","src":"7020:57:21"}]},"documentation":{"id":2336,"nodeType":"StructuredDocumentation","src":"6647:114:21","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":2371,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"6775:13:21","nodeType":"FunctionDefinition","parameters":{"id":2341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2338,"mutability":"mutable","name":"role","nameLocation":"6797:4:21","nodeType":"VariableDeclaration","scope":2371,"src":"6789:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6789:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2340,"mutability":"mutable","name":"adminRole","nameLocation":"6811:9:21","nodeType":"VariableDeclaration","scope":2371,"src":"6803:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6803:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6788:33:21"},"returnParameters":{"id":2342,"nodeType":"ParameterList","parameters":[],"src":"6839:0:21"},"scope":2465,"src":"6766:318:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2417,"nodeType":"Block","src":"7401:304:21","statements":[{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"$","nameLocation":"7440:1:21","nodeType":"VariableDeclaration","scope":2417,"src":"7411:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2382,"nodeType":"UserDefinedTypeName","pathNode":{"id":2381,"name":"AccessControlStorage","nameLocations":["7411:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"7411:20:21"},"referencedDeclaration":2138,"src":"7411:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":2386,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2384,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"7444:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$2138_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7444:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7411:59:21"},{"condition":{"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7484:23:21","subExpression":{"arguments":[{"id":2388,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"7493:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2389,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"7499:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2387,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"7485:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7485:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2415,"nodeType":"Block","src":"7662:37:21","statements":[{"expression":{"hexValue":"66616c7365","id":2413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7683:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":2380,"id":2414,"nodeType":"Return","src":"7676:12:21"}]},"id":2416,"nodeType":"IfStatement","src":"7480:219:21","trueBody":{"id":2412,"nodeType":"Block","src":"7509:147:21","statements":[{"expression":{"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":2392,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"7523:1:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":2395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7525:6:21","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":2137,"src":"7523:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":2396,"indexExpression":{"id":2394,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"7532:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:14:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":2397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7538:7:21","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"7523:22:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2399,"indexExpression":{"id":2398,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"7546:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7523:31:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7557:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7523:38:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2402,"nodeType":"ExpressionStatement","src":"7523:38:21"},{"eventCall":{"arguments":[{"id":2404,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"7592:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2405,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"7598:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2406,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"7607:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7607:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2403,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3236,"src":"7580:11:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":2408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7580:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2409,"nodeType":"EmitStatement","src":"7575:45:21"},{"expression":{"hexValue":"74727565","id":2410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7641:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2380,"id":2411,"nodeType":"Return","src":"7634:11:21"}]}}]},"documentation":{"id":2372,"nodeType":"StructuredDocumentation","src":"7090:223:21","text":" @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":2418,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7327:10:21","nodeType":"FunctionDefinition","parameters":{"id":2377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2374,"mutability":"mutable","name":"role","nameLocation":"7346:4:21","nodeType":"VariableDeclaration","scope":2418,"src":"7338:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7338:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"account","nameLocation":"7360:7:21","nodeType":"VariableDeclaration","scope":2418,"src":"7352:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2375,"name":"address","nodeType":"ElementaryTypeName","src":"7352:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7337:31:21"},"returnParameters":{"id":2380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2418,"src":"7395:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2378,"name":"bool","nodeType":"ElementaryTypeName","src":"7395:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7394:6:21"},"scope":2465,"src":"7318:387:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2463,"nodeType":"Block","src":"8026:304:21","statements":[{"assignments":[2430],"declarations":[{"constant":false,"id":2430,"mutability":"mutable","name":"$","nameLocation":"8065:1:21","nodeType":"VariableDeclaration","scope":2463,"src":"8036:30:21","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"},"typeName":{"id":2429,"nodeType":"UserDefinedTypeName","pathNode":{"id":2428,"name":"AccessControlStorage","nameLocations":["8036:20:21"],"nodeType":"IdentifierPath","referencedDeclaration":2138,"src":"8036:20:21"},"referencedDeclaration":2138,"src":"8036:20:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage"}},"visibility":"internal"}],"id":2433,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2431,"name":"_getAccessControlStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"8069:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$2138_storage_ptr_$","typeString":"function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)"}},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8036:59:21"},{"condition":{"arguments":[{"id":2435,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"8117:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2436,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"8123:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2434,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2219,"src":"8109:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8109:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2461,"nodeType":"Block","src":"8287:37:21","statements":[{"expression":{"hexValue":"66616c7365","id":2459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8308:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":2427,"id":2460,"nodeType":"Return","src":"8301:12:21"}]},"id":2462,"nodeType":"IfStatement","src":"8105:219:21","trueBody":{"id":2458,"nodeType":"Block","src":"8133:148:21","statements":[{"expression":{"id":2447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"expression":{"id":2438,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"8147:1:21","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlStorage_$2138_storage_ptr","typeString":"struct AccessControlUpgradeable.AccessControlStorage storage pointer"}},"id":2441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8149:6:21","memberName":"_roles","nodeType":"MemberAccess","referencedDeclaration":2137,"src":"8147:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$2128_storage_$","typeString":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)"}},"id":2442,"indexExpression":{"id":2440,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"8156:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8147:14:21","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$2128_storage","typeString":"struct AccessControlUpgradeable.RoleData storage ref"}},"id":2443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8162:7:21","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"8147:22:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":2445,"indexExpression":{"id":2444,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"8170:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8147:31:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8181:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8147:39:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2448,"nodeType":"ExpressionStatement","src":"8147:39:21"},{"eventCall":{"arguments":[{"id":2450,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"8217:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2451,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"8223:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2452,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"8232:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8232:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2449,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3245,"src":"8205:11:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2455,"nodeType":"EmitStatement","src":"8200:45:21"},{"expression":{"hexValue":"74727565","id":2456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8266:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2427,"id":2457,"nodeType":"Return","src":"8259:11:21"}]}}]},"documentation":{"id":2419,"nodeType":"StructuredDocumentation","src":"7711:226:21","text":" @dev Attempts to revoke `role` from `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":2464,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7951:11:21","nodeType":"FunctionDefinition","parameters":{"id":2424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2421,"mutability":"mutable","name":"role","nameLocation":"7971:4:21","nodeType":"VariableDeclaration","scope":2464,"src":"7963:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7963:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2423,"mutability":"mutable","name":"account","nameLocation":"7985:7:21","nodeType":"VariableDeclaration","scope":2464,"src":"7977:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2422,"name":"address","nodeType":"ElementaryTypeName","src":"7977:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7962:31:21"},"returnParameters":{"id":2427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2464,"src":"8020:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2425,"name":"bool","nodeType":"ElementaryTypeName","src":"8020:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8019:6:21"},"scope":2465,"src":"7942:388:21","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2466,"src":"2171:6161:21","usedErrors":[2708,2711,3215,3218],"usedEvents":[2716,3227,3236,3245]}],"src":"108:8225:21"},"id":21},"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol","exportedSymbols":{"AccessControlEnumerableUpgradeable":[2691],"AccessControlUpgradeable":[2465],"EnumerableSet":[9924],"IAccessControlEnumerable":[3314],"IERC165":[5012],"Initializable":[2959]},"id":2692,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2467,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"129:24:22"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/extensions/IAccessControlEnumerable.sol","id":2469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2692,"sourceUnit":3315,"src":"155:112:22","symbolAliases":[{"foreign":{"id":2468,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"163:24:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/AccessControlUpgradeable.sol","file":"../AccessControlUpgradeable.sol","id":2471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2692,"sourceUnit":2466,"src":"268:73:22","symbolAliases":[{"foreign":{"id":2470,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"276:24:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":2473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2692,"sourceUnit":9925,"src":"342:86:22","symbolAliases":[{"foreign":{"id":2472,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9924,"src":"350:13:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":2475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2692,"sourceUnit":5013,"src":"429:80:22","symbolAliases":[{"foreign":{"id":2474,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"437:7:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":2477,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2692,"sourceUnit":2960,"src":"510:66:22","symbolAliases":[{"foreign":{"id":2476,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"518:13:22","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2479,"name":"Initializable","nameLocations":["729:13:22"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"729:13:22"},"id":2480,"nodeType":"InheritanceSpecifier","src":"729:13:22"},{"baseName":{"id":2481,"name":"IAccessControlEnumerable","nameLocations":["744:24:22"],"nodeType":"IdentifierPath","referencedDeclaration":3314,"src":"744:24:22"},"id":2482,"nodeType":"InheritanceSpecifier","src":"744:24:22"},{"baseName":{"id":2483,"name":"AccessControlUpgradeable","nameLocations":["770:24:22"],"nodeType":"IdentifierPath","referencedDeclaration":2465,"src":"770:24:22"},"id":2484,"nodeType":"InheritanceSpecifier","src":"770:24:22"}],"canonicalName":"AccessControlEnumerableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2478,"nodeType":"StructuredDocumentation","src":"578:94:22","text":" @dev Extension of {AccessControl} that allows enumerating the members of each role."},"fullyImplemented":true,"id":2691,"linearizedBaseContracts":[2691,2465,3205,5012,3314,3288,3005,2959],"name":"AccessControlEnumerableUpgradeable","nameLocation":"691:34:22","nodeType":"ContractDefinition","nodes":[{"global":false,"id":2488,"libraryName":{"id":2485,"name":"EnumerableSet","nameLocations":["807:13:22"],"nodeType":"IdentifierPath","referencedDeclaration":9924,"src":"807:13:22"},"nodeType":"UsingForDirective","src":"801:49:22","typeName":{"id":2487,"nodeType":"UserDefinedTypeName","pathNode":{"id":2486,"name":"EnumerableSet.AddressSet","nameLocations":["825:13:22","839:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"825:24:22"},"referencedDeclaration":8899,"src":"825:24:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"canonicalName":"AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage","documentation":{"id":2489,"nodeType":"StructuredDocumentation","src":"856:81:22","text":"@custom:storage-location erc7201:openzeppelin.storage.AccessControlEnumerable"},"id":2495,"members":[{"constant":false,"id":2494,"mutability":"mutable","name":"_roleMembers","nameLocation":"1040:12:22","nodeType":"VariableDeclaration","scope":2495,"src":"990:62:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"typeName":{"id":2493,"keyName":"role","keyNameLocation":"1006:4:22","keyType":{"id":2490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"990:49:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2492,"nodeType":"UserDefinedTypeName","pathNode":{"id":2491,"name":"EnumerableSet.AddressSet","nameLocations":["1014:13:22","1028:10:22"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"1014:24:22"},"referencedDeclaration":8899,"src":"1014:24:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"}],"name":"AccessControlEnumerableStorage","nameLocation":"949:30:22","nodeType":"StructDefinition","scope":2691,"src":"942:117:22","visibility":"public"},{"constant":true,"id":2498,"mutability":"constant","name":"AccessControlEnumerableStorageLocation","nameLocation":"1217:38:22","nodeType":"VariableDeclaration","scope":2691,"src":"1192:132:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1192:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863316636666532343632316365383165633538323763616630323533636164623734373039623036313633306536623535653832333731373035393332303030","id":2497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1258:66:22","typeDescriptions":{"typeIdentifier":"t_rational_87732778178968556439956192144688703237987636878447527990685272173340959907840_by_1","typeString":"int_const 8773...(69 digits omitted)...7840"},"value":"0xc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000"},"visibility":"private"},{"body":{"id":2505,"nodeType":"Block","src":"1441:97:22","statements":[{"AST":{"nativeSrc":"1460:72:22","nodeType":"YulBlock","src":"1460:72:22","statements":[{"nativeSrc":"1474:48:22","nodeType":"YulAssignment","src":"1474:48:22","value":{"name":"AccessControlEnumerableStorageLocation","nativeSrc":"1484:38:22","nodeType":"YulIdentifier","src":"1484:38:22"},"variableNames":[{"name":"$.slot","nativeSrc":"1474:6:22","nodeType":"YulIdentifier","src":"1474:6:22"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2502,"isOffset":false,"isSlot":true,"src":"1474:6:22","suffix":"slot","valueSize":1},{"declaration":2498,"isOffset":false,"isSlot":false,"src":"1484:38:22","valueSize":1}],"id":2504,"nodeType":"InlineAssembly","src":"1451:81:22"}]},"id":2506,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccessControlEnumerableStorage","nameLocation":"1340:34:22","nodeType":"FunctionDefinition","parameters":{"id":2499,"nodeType":"ParameterList","parameters":[],"src":"1374:2:22"},"returnParameters":{"id":2503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2502,"mutability":"mutable","name":"$","nameLocation":"1438:1:22","nodeType":"VariableDeclaration","scope":2506,"src":"1399:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2501,"nodeType":"UserDefinedTypeName","pathNode":{"id":2500,"name":"AccessControlEnumerableStorage","nameLocations":["1399:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"1399:30:22"},"referencedDeclaration":2495,"src":"1399:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"src":"1398:42:22"},"scope":2691,"src":"1331:207:22","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2511,"nodeType":"Block","src":"1612:7:22","statements":[]},"id":2512,"implemented":true,"kind":"function","modifiers":[{"id":2509,"kind":"modifierInvocation","modifierName":{"id":2508,"name":"onlyInitializing","nameLocations":["1595:16:22"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"1595:16:22"},"nodeType":"ModifierInvocation","src":"1595:16:22"}],"name":"__AccessControlEnumerable_init","nameLocation":"1553:30:22","nodeType":"FunctionDefinition","parameters":{"id":2507,"nodeType":"ParameterList","parameters":[],"src":"1583:2:22"},"returnParameters":{"id":2510,"nodeType":"ParameterList","parameters":[],"src":"1612:0:22"},"scope":2691,"src":"1544:75:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2517,"nodeType":"Block","src":"1703:7:22","statements":[]},"id":2518,"implemented":true,"kind":"function","modifiers":[{"id":2515,"kind":"modifierInvocation","modifierName":{"id":2514,"name":"onlyInitializing","nameLocations":["1686:16:22"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"1686:16:22"},"nodeType":"ModifierInvocation","src":"1686:16:22"}],"name":"__AccessControlEnumerable_init_unchained","nameLocation":"1634:40:22","nodeType":"FunctionDefinition","parameters":{"id":2513,"nodeType":"ParameterList","parameters":[],"src":"1674:2:22"},"returnParameters":{"id":2516,"nodeType":"ParameterList","parameters":[],"src":"1703:0:22"},"scope":2691,"src":"1625:85:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2194],"body":{"id":2539,"nodeType":"Block","src":"1834:121:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2527,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"1851:11:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2529,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3314,"src":"1871:24:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$3314_$","typeString":"type(contract IAccessControlEnumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$3314_$","typeString":"type(contract IAccessControlEnumerable)"}],"id":2528,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1866:4:22","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlEnumerable_$3314","typeString":"type(contract IAccessControlEnumerable)"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1897:11:22","memberName":"interfaceId","nodeType":"MemberAccess","src":"1866:42:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1851:57:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":2535,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2521,"src":"1936:11:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":2533,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1912:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerableUpgradeable_$2691_$","typeString":"type(contract super AccessControlEnumerableUpgradeable)"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:17:22","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2194,"src":"1912:23:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":2536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1851:97:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2526,"id":2538,"nodeType":"Return","src":"1844:104:22"}]},"documentation":{"id":2519,"nodeType":"StructuredDocumentation","src":"1715:23:22","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":2540,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1752:17:22","nodeType":"FunctionDefinition","overrides":{"id":2523,"nodeType":"OverrideSpecifier","overrides":[],"src":"1810:8:22"},"parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"interfaceId","nameLocation":"1777:11:22","nodeType":"VariableDeclaration","scope":2540,"src":"1770:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2520,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1770:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1769:20:22"},"returnParameters":{"id":2526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2540,"src":"1828:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2524,"name":"bool","nodeType":"ElementaryTypeName","src":"1828:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1827:6:22"},"scope":2691,"src":"1743:212:22","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3305],"body":{"id":2564,"nodeType":"Block","src":"2630:143:22","statements":[{"assignments":[2552],"declarations":[{"constant":false,"id":2552,"mutability":"mutable","name":"$","nameLocation":"2679:1:22","nodeType":"VariableDeclaration","scope":2564,"src":"2640:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2551,"nodeType":"UserDefinedTypeName","pathNode":{"id":2550,"name":"AccessControlEnumerableStorage","nameLocations":["2640:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"2640:30:22"},"referencedDeclaration":2495,"src":"2640:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"id":2555,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2553,"name":"_getAccessControlEnumerableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"2683:34:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr_$","typeString":"function () pure returns (struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer)"}},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2683:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2640:79:22"},{"expression":{"arguments":[{"id":2561,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"2760:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"expression":{"id":2556,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"2736:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"id":2557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2738:12:22","memberName":"_roleMembers","nodeType":"MemberAccess","referencedDeclaration":2494,"src":"2736:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":2559,"indexExpression":{"id":2558,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"2751:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2736:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":2560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2757:2:22","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":9035,"src":"2736:23:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$8899_storage_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_struct$_AddressSet_$8899_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":2562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2549,"id":2563,"nodeType":"Return","src":"2729:37:22"}]},"documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"1961:574:22","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":2565,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"2549:13:22","nodeType":"FunctionDefinition","parameters":{"id":2546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"role","nameLocation":"2571:4:22","nodeType":"VariableDeclaration","scope":2565,"src":"2563:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"index","nameLocation":"2585:5:22","nodeType":"VariableDeclaration","scope":2565,"src":"2577:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2544,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2562:29:22"},"returnParameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2565,"src":"2621:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"2621:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2620:9:22"},"scope":2691,"src":"2540:233:22","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[3313],"body":{"id":2586,"nodeType":"Block","src":"3021:142:22","statements":[{"assignments":[2575],"declarations":[{"constant":false,"id":2575,"mutability":"mutable","name":"$","nameLocation":"3070:1:22","nodeType":"VariableDeclaration","scope":2586,"src":"3031:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2574,"nodeType":"UserDefinedTypeName","pathNode":{"id":2573,"name":"AccessControlEnumerableStorage","nameLocations":["3031:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"3031:30:22"},"referencedDeclaration":2495,"src":"3031:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"id":2578,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2576,"name":"_getAccessControlEnumerableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"3074:34:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr_$","typeString":"function () pure returns (struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer)"}},"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3074:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3031:79:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":2579,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2575,"src":"3127:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"id":2580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3129:12:22","memberName":"_roleMembers","nodeType":"MemberAccess","referencedDeclaration":2494,"src":"3127:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":2582,"indexExpression":{"id":2581,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"3142:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3127:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":2583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3148:6:22","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":9008,"src":"3127:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$8899_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$8899_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3127:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2572,"id":2585,"nodeType":"Return","src":"3120:36:22"}]},"documentation":{"id":2566,"nodeType":"StructuredDocumentation","src":"2779:157:22","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":2587,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"2950:18:22","nodeType":"FunctionDefinition","parameters":{"id":2569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2568,"mutability":"mutable","name":"role","nameLocation":"2977:4:22","nodeType":"VariableDeclaration","scope":2587,"src":"2969:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2968:14:22"},"returnParameters":{"id":2572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2587,"src":"3012:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2570,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3011:9:22"},"scope":2691,"src":"2941:222:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2609,"nodeType":"Block","src":"3791:142:22","statements":[{"assignments":[2598],"declarations":[{"constant":false,"id":2598,"mutability":"mutable","name":"$","nameLocation":"3840:1:22","nodeType":"VariableDeclaration","scope":2609,"src":"3801:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2597,"nodeType":"UserDefinedTypeName","pathNode":{"id":2596,"name":"AccessControlEnumerableStorage","nameLocations":["3801:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"3801:30:22"},"referencedDeclaration":2495,"src":"3801:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"id":2601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2599,"name":"_getAccessControlEnumerableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"3844:34:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr_$","typeString":"function () pure returns (struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer)"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3844:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3801:79:22"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":2602,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"3897:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"id":2603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3899:12:22","memberName":"_roleMembers","nodeType":"MemberAccess","referencedDeclaration":2494,"src":"3897:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":2605,"indexExpression":{"id":2604,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"3912:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3897:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":2606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3918:6:22","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":9065,"src":"3897:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$8899_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$8899_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3897:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":2595,"id":2608,"nodeType":"Return","src":"3890:36:22"}]},"documentation":{"id":2588,"nodeType":"StructuredDocumentation","src":"3169:532:22","text":" @dev Return all accounts that have `role`\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"functionSelector":"a3246ad3","id":2610,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMembers","nameLocation":"3715:14:22","nodeType":"FunctionDefinition","parameters":{"id":2591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2590,"mutability":"mutable","name":"role","nameLocation":"3738:4:22","nodeType":"VariableDeclaration","scope":2610,"src":"3730:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3729:14:22"},"returnParameters":{"id":2595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2610,"src":"3773:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2592,"name":"address","nodeType":"ElementaryTypeName","src":"3773:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2593,"nodeType":"ArrayTypeName","src":"3773:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3772:18:22"},"scope":2691,"src":"3706:227:22","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2418],"body":{"id":2649,"nodeType":"Block","src":"4127:256:22","statements":[{"assignments":[2623],"declarations":[{"constant":false,"id":2623,"mutability":"mutable","name":"$","nameLocation":"4176:1:22","nodeType":"VariableDeclaration","scope":2649,"src":"4137:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2622,"nodeType":"UserDefinedTypeName","pathNode":{"id":2621,"name":"AccessControlEnumerableStorage","nameLocations":["4137:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"4137:30:22"},"referencedDeclaration":2495,"src":"4137:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"id":2626,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2624,"name":"_getAccessControlEnumerableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"4180:34:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr_$","typeString":"function () pure returns (struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer)"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4137:79:22"},{"assignments":[2628],"declarations":[{"constant":false,"id":2628,"mutability":"mutable","name":"granted","nameLocation":"4231:7:22","nodeType":"VariableDeclaration","scope":2649,"src":"4226:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2627,"name":"bool","nodeType":"ElementaryTypeName","src":"4226:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2634,"initialValue":{"arguments":[{"id":2631,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"4258:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2632,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"4264:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2629,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4241:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerableUpgradeable_$2691_$","typeString":"type(contract super AccessControlEnumerableUpgradeable)"}},"id":2630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4247:10:22","memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":2418,"src":"4241:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4241:31:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4226:46:22"},{"condition":{"id":2635,"name":"granted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2628,"src":"4286:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2646,"nodeType":"IfStatement","src":"4282:71:22","trueBody":{"id":2645,"nodeType":"Block","src":"4295:58:22","statements":[{"expression":{"arguments":[{"id":2642,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"4334:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":2636,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2623,"src":"4309:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"id":2639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4311:12:22","memberName":"_roleMembers","nodeType":"MemberAccess","referencedDeclaration":2494,"src":"4309:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":2640,"indexExpression":{"id":2638,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"4324:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4309:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":2641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4330:3:22","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":8926,"src":"4309:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$8899_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$8899_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":2643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4309:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2644,"nodeType":"ExpressionStatement","src":"4309:33:22"}]}},{"expression":{"id":2647,"name":"granted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2628,"src":"4369:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2620,"id":2648,"nodeType":"Return","src":"4362:14:22"}]},"documentation":{"id":2611,"nodeType":"StructuredDocumentation","src":"3939:91:22","text":" @dev Overload {AccessControl-_grantRole} to track enumerable memberships"},"id":2650,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"4044:10:22","nodeType":"FunctionDefinition","overrides":{"id":2617,"nodeType":"OverrideSpecifier","overrides":[],"src":"4103:8:22"},"parameters":{"id":2616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2613,"mutability":"mutable","name":"role","nameLocation":"4063:4:22","nodeType":"VariableDeclaration","scope":2650,"src":"4055:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4055:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2615,"mutability":"mutable","name":"account","nameLocation":"4077:7:22","nodeType":"VariableDeclaration","scope":2650,"src":"4069:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2614,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4054:31:22"},"returnParameters":{"id":2620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2650,"src":"4121:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2618,"name":"bool","nodeType":"ElementaryTypeName","src":"4121:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4120:6:22"},"scope":2691,"src":"4035:348:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2464],"body":{"id":2689,"nodeType":"Block","src":"4579:260:22","statements":[{"assignments":[2663],"declarations":[{"constant":false,"id":2663,"mutability":"mutable","name":"$","nameLocation":"4628:1:22","nodeType":"VariableDeclaration","scope":2689,"src":"4589:40:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"},"typeName":{"id":2662,"nodeType":"UserDefinedTypeName","pathNode":{"id":2661,"name":"AccessControlEnumerableStorage","nameLocations":["4589:30:22"],"nodeType":"IdentifierPath","referencedDeclaration":2495,"src":"4589:30:22"},"referencedDeclaration":2495,"src":"4589:30:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage"}},"visibility":"internal"}],"id":2666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2664,"name":"_getAccessControlEnumerableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"4632:34:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr_$","typeString":"function () pure returns (struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer)"}},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4632:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4589:79:22"},{"assignments":[2668],"declarations":[{"constant":false,"id":2668,"mutability":"mutable","name":"revoked","nameLocation":"4683:7:22","nodeType":"VariableDeclaration","scope":2689,"src":"4678:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2667,"name":"bool","nodeType":"ElementaryTypeName","src":"4678:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2674,"initialValue":{"arguments":[{"id":2671,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"4711:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2672,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"4717:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2669,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4693:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerableUpgradeable_$2691_$","typeString":"type(contract super AccessControlEnumerableUpgradeable)"}},"id":2670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4699:11:22","memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":2464,"src":"4693:17:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4693:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4678:47:22"},{"condition":{"id":2675,"name":"revoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2668,"src":"4739:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2686,"nodeType":"IfStatement","src":"4735:74:22","trueBody":{"id":2685,"nodeType":"Block","src":"4748:61:22","statements":[{"expression":{"arguments":[{"id":2682,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"4790:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":2676,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2663,"src":"4762:1:22","typeDescriptions":{"typeIdentifier":"t_struct$_AccessControlEnumerableStorage_$2495_storage_ptr","typeString":"struct AccessControlEnumerableUpgradeable.AccessControlEnumerableStorage storage pointer"}},"id":2679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4764:12:22","memberName":"_roleMembers","nodeType":"MemberAccess","referencedDeclaration":2494,"src":"4762:14:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$8899_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":2680,"indexExpression":{"id":2678,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"4777:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4762:20:22","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":2681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4783:6:22","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":8953,"src":"4762:27:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$8899_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$8899_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4762:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2684,"nodeType":"ExpressionStatement","src":"4762:36:22"}]}},{"expression":{"id":2687,"name":"revoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2668,"src":"4825:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2660,"id":2688,"nodeType":"Return","src":"4818:14:22"}]},"documentation":{"id":2651,"nodeType":"StructuredDocumentation","src":"4389:92:22","text":" @dev Overload {AccessControl-_revokeRole} to track enumerable memberships"},"id":2690,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"4495:11:22","nodeType":"FunctionDefinition","overrides":{"id":2657,"nodeType":"OverrideSpecifier","overrides":[],"src":"4555:8:22"},"parameters":{"id":2656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"role","nameLocation":"4515:4:22","nodeType":"VariableDeclaration","scope":2690,"src":"4507:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4507:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2655,"mutability":"mutable","name":"account","nameLocation":"4529:7:22","nodeType":"VariableDeclaration","scope":2690,"src":"4521:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2654,"name":"address","nodeType":"ElementaryTypeName","src":"4521:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4506:31:22"},"returnParameters":{"id":2660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2690,"src":"4573:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2658,"name":"bool","nodeType":"ElementaryTypeName","src":"4573:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4572:6:22"},"scope":2691,"src":"4486:353:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2692,"src":"673:4168:22","usedErrors":[2708,2711,3215,3218],"usedEvents":[2716,3227,3236,3245]}],"src":"129:4713:22"},"id":22},"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[2959]},"id":2960,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2693,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:23"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2694,"nodeType":"StructuredDocumentation","src":"139:2209:23","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":2959,"linearizedBaseContracts":[2959],"name":"Initializable","nameLocation":"2367:13:23","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":2695,"nodeType":"StructuredDocumentation","src":"2387:293:23","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":2702,"members":[{"constant":false,"id":2698,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:23","nodeType":"VariableDeclaration","scope":2702,"src":"2813:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2697,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":2701,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:23","nodeType":"VariableDeclaration","scope":2702,"src":"2950:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2700,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:23","nodeType":"StructDefinition","scope":2959,"src":"2685:290:23","visibility":"public"},{"constant":true,"id":2705,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:23","nodeType":"VariableDeclaration","scope":2959,"src":"3098:115:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":2704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:23","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":2706,"nodeType":"StructuredDocumentation","src":"3220:60:23","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":2708,"name":"InvalidInitialization","nameLocation":"3291:21:23","nodeType":"ErrorDefinition","parameters":{"id":2707,"nodeType":"ParameterList","parameters":[],"src":"3312:2:23"},"src":"3285:30:23"},{"documentation":{"id":2709,"nodeType":"StructuredDocumentation","src":"3321:57:23","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":2711,"name":"NotInitializing","nameLocation":"3389:15:23","nodeType":"ErrorDefinition","parameters":{"id":2710,"nodeType":"ParameterList","parameters":[],"src":"3404:2:23"},"src":"3383:24:23"},{"anonymous":false,"documentation":{"id":2712,"nodeType":"StructuredDocumentation","src":"3413:90:23","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":2716,"name":"Initialized","nameLocation":"3514:11:23","nodeType":"EventDefinition","parameters":{"id":2715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2714,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:23","nodeType":"VariableDeclaration","scope":2716,"src":"3526:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2713,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:23"},"src":"3508:34:23"},{"body":{"id":2798,"nodeType":"Block","src":"4092:1079:23","statements":[{"assignments":[2721],"declarations":[{"constant":false,"id":2721,"mutability":"mutable","name":"$","nameLocation":"4187:1:23","nodeType":"VariableDeclaration","scope":2798,"src":"4158:30:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":2720,"nodeType":"UserDefinedTypeName","pathNode":{"id":2719,"name":"InitializableStorage","nameLocations":["4158:20:23"],"nodeType":"IdentifierPath","referencedDeclaration":2702,"src":"4158:20:23"},"referencedDeclaration":2702,"src":"4158:20:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":2724,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2722,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"4191:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$2702_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:23"},{"assignments":[2726],"declarations":[{"constant":false,"id":2726,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:23","nodeType":"VariableDeclaration","scope":2798,"src":"4279:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2725,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2730,"initialValue":{"id":2729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:23","subExpression":{"expression":{"id":2727,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"4302:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"4302:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:23"},{"assignments":[2732],"declarations":[{"constant":false,"id":2732,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:23","nodeType":"VariableDeclaration","scope":2798,"src":"4327:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2731,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2735,"initialValue":{"expression":{"id":2733,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"4348:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"4348:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:23"},{"assignments":[2737],"declarations":[{"constant":false,"id":2737,"mutability":"mutable","name":"initialSetup","nameLocation":"4709:12:23","nodeType":"VariableDeclaration","scope":2798,"src":"4704:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2736,"name":"bool","nodeType":"ElementaryTypeName","src":"4704:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2743,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2738,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2732,"src":"4724:11:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4739:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4724:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2741,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"4744:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4724:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4704:54:23"},{"assignments":[2745],"declarations":[{"constant":false,"id":2745,"mutability":"mutable","name":"construction","nameLocation":"4773:12:23","nodeType":"VariableDeclaration","scope":2798,"src":"4768:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2744,"name":"bool","nodeType":"ElementaryTypeName","src":"4768:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2758,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2746,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2732,"src":"4788:11:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4803:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4788:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":2751,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4816:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$2959","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$2959","typeString":"contract Initializable"}],"id":2750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4808:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2749,"name":"address","nodeType":"ElementaryTypeName","src":"4808:7:23","typeDescriptions":{}}},"id":2752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4822:4:23","memberName":"code","nodeType":"MemberAccess","src":"4808:18:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4827:6:23","memberName":"length","nodeType":"MemberAccess","src":"4808:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4837:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4808:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4788:50:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4768:70:23"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4853:13:23","subExpression":{"id":2759,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2737,"src":"4854:12:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4870:13:23","subExpression":{"id":2761,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"4871:12:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4853:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2768,"nodeType":"IfStatement","src":"4849:91:23","trueBody":{"id":2767,"nodeType":"Block","src":"4885:55:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2764,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"4906:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2766,"nodeType":"RevertStatement","src":"4899:30:23"}]}},{"expression":{"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2769,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"4949:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4951:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"4949:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":2772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4966:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4949:18:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2774,"nodeType":"ExpressionStatement","src":"4949:18:23"},{"condition":{"id":2775,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"4981:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2783,"nodeType":"IfStatement","src":"4977:67:23","trueBody":{"id":2782,"nodeType":"Block","src":"4997:47:23","statements":[{"expression":{"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2776,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"5011:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5013:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"5011:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5029:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5011:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2781,"nodeType":"ExpressionStatement","src":"5011:22:23"}]}},{"id":2784,"nodeType":"PlaceholderStatement","src":"5053:1:23"},{"condition":{"id":2785,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"5068:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2797,"nodeType":"IfStatement","src":"5064:101:23","trueBody":{"id":2796,"nodeType":"Block","src":"5084:81:23","statements":[{"expression":{"id":2790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2786,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"5098:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5100:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"5098:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5116:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5098:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2791,"nodeType":"ExpressionStatement","src":"5098:23:23"},{"eventCall":{"arguments":[{"hexValue":"31","id":2793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5152:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":2792,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2716,"src":"5140:11:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5140:14:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2795,"nodeType":"EmitStatement","src":"5135:19:23"}]}}]},"documentation":{"id":2717,"nodeType":"StructuredDocumentation","src":"3548:516:23","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":2799,"name":"initializer","nameLocation":"4078:11:23","nodeType":"ModifierDefinition","parameters":{"id":2718,"nodeType":"ParameterList","parameters":[],"src":"4089:2:23"},"src":"4069:1102:23","virtual":false,"visibility":"internal"},{"body":{"id":2845,"nodeType":"Block","src":"6289:392:23","statements":[{"assignments":[2806],"declarations":[{"constant":false,"id":2806,"mutability":"mutable","name":"$","nameLocation":"6384:1:23","nodeType":"VariableDeclaration","scope":2845,"src":"6355:30:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":2805,"nodeType":"UserDefinedTypeName","pathNode":{"id":2804,"name":"InitializableStorage","nameLocations":["6355:20:23"],"nodeType":"IdentifierPath","referencedDeclaration":2702,"src":"6355:20:23"},"referencedDeclaration":2702,"src":"6355:20:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":2809,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2807,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"6388:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$2702_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6388:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6355:59:23"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"6429:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6431:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"6429:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2812,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"6448:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"6448:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2814,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"6466:7:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6448:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6429:44:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2821,"nodeType":"IfStatement","src":"6425:105:23","trueBody":{"id":2820,"nodeType":"Block","src":"6475:55:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2817,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"6496:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2819,"nodeType":"RevertStatement","src":"6489:30:23"}]}},{"expression":{"id":2826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2822,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"6539:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6541:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"6539:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2825,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"6556:7:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6539:24:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2827,"nodeType":"ExpressionStatement","src":"6539:24:23"},{"expression":{"id":2832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2828,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"6573:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6575:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"6573:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6591:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6573:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2833,"nodeType":"ExpressionStatement","src":"6573:22:23"},{"id":2834,"nodeType":"PlaceholderStatement","src":"6605:1:23"},{"expression":{"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2835,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"6616:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6618:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"6616:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6634:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6616:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2840,"nodeType":"ExpressionStatement","src":"6616:23:23"},{"eventCall":{"arguments":[{"id":2842,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"6666:7:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2841,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2716,"src":"6654:11:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":2843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6654:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2844,"nodeType":"EmitStatement","src":"6649:25:23"}]},"documentation":{"id":2800,"nodeType":"StructuredDocumentation","src":"5177:1068:23","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":2846,"name":"reinitializer","nameLocation":"6259:13:23","nodeType":"ModifierDefinition","parameters":{"id":2803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2802,"mutability":"mutable","name":"version","nameLocation":"6280:7:23","nodeType":"VariableDeclaration","scope":2846,"src":"6273:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2801,"name":"uint64","nodeType":"ElementaryTypeName","src":"6273:6:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6272:16:23"},"src":"6250:431:23","virtual":false,"visibility":"internal"},{"body":{"id":2853,"nodeType":"Block","src":"6919:48:23","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2849,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"6929:18:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6929:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2851,"nodeType":"ExpressionStatement","src":"6929:20:23"},{"id":2852,"nodeType":"PlaceholderStatement","src":"6959:1:23"}]},"documentation":{"id":2847,"nodeType":"StructuredDocumentation","src":"6687:199:23","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":2854,"name":"onlyInitializing","nameLocation":"6900:16:23","nodeType":"ModifierDefinition","parameters":{"id":2848,"nodeType":"ParameterList","parameters":[],"src":"6916:2:23"},"src":"6891:76:23","virtual":false,"visibility":"internal"},{"body":{"id":2866,"nodeType":"Block","src":"7134:89:23","statements":[{"condition":{"id":2860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7148:18:23","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2858,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"7149:15:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":2859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7149:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2865,"nodeType":"IfStatement","src":"7144:73:23","trueBody":{"id":2864,"nodeType":"Block","src":"7168:49:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2861,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2711,"src":"7189:15:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7189:17:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2863,"nodeType":"RevertStatement","src":"7182:24:23"}]}}]},"documentation":{"id":2855,"nodeType":"StructuredDocumentation","src":"6973:104:23","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":2867,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7091:18:23","nodeType":"FunctionDefinition","parameters":{"id":2856,"nodeType":"ParameterList","parameters":[],"src":"7109:2:23"},"returnParameters":{"id":2857,"nodeType":"ParameterList","parameters":[],"src":"7134:0:23"},"scope":2959,"src":"7082:141:23","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2912,"nodeType":"Block","src":"7758:373:23","statements":[{"assignments":[2873],"declarations":[{"constant":false,"id":2873,"mutability":"mutable","name":"$","nameLocation":"7853:1:23","nodeType":"VariableDeclaration","scope":2912,"src":"7824:30:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":2872,"nodeType":"UserDefinedTypeName","pathNode":{"id":2871,"name":"InitializableStorage","nameLocations":["7824:20:23"],"nodeType":"IdentifierPath","referencedDeclaration":2702,"src":"7824:20:23"},"referencedDeclaration":2702,"src":"7824:20:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":2876,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2874,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"7857:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$2702_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7857:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7824:59:23"},{"condition":{"expression":{"id":2877,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"7898:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7900:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"7898:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2883,"nodeType":"IfStatement","src":"7894:76:23","trueBody":{"id":2882,"nodeType":"Block","src":"7915:55:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2879,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"7936:21:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7936:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2881,"nodeType":"RevertStatement","src":"7929:30:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2884,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"7983:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7985:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"7983:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":2888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8006:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2887,"name":"uint64","nodeType":"ElementaryTypeName","src":"8006:6:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":2886,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8001:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8001:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":2890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8014:3:23","memberName":"max","nodeType":"MemberAccess","src":"8001:16:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7983:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2911,"nodeType":"IfStatement","src":"7979:146:23","trueBody":{"id":2910,"nodeType":"Block","src":"8019:106:23","statements":[{"expression":{"id":2900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2892,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2873,"src":"8033:1:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8035:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"8033:14:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":2897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8055:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2896,"name":"uint64","nodeType":"ElementaryTypeName","src":"8055:6:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":2895,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8050:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":2899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8063:3:23","memberName":"max","nodeType":"MemberAccess","src":"8050:16:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8033:33:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":2901,"nodeType":"ExpressionStatement","src":"8033:33:23"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":2905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8102:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2904,"name":"uint64","nodeType":"ElementaryTypeName","src":"8102:6:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":2903,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8097:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8097:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":2907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8110:3:23","memberName":"max","nodeType":"MemberAccess","src":"8097:16:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2902,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2716,"src":"8085:11:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":2908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8085:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2909,"nodeType":"EmitStatement","src":"8080:34:23"}]}}]},"documentation":{"id":2868,"nodeType":"StructuredDocumentation","src":"7229:475:23","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":2913,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7718:20:23","nodeType":"FunctionDefinition","parameters":{"id":2869,"nodeType":"ParameterList","parameters":[],"src":"7738:2:23"},"returnParameters":{"id":2870,"nodeType":"ParameterList","parameters":[],"src":"7758:0:23"},"scope":2959,"src":"7709:422:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2923,"nodeType":"Block","src":"8306:63:23","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2919,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"8323:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$2702_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":2920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8323:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8350:12:23","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":2698,"src":"8323:39:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":2918,"id":2922,"nodeType":"Return","src":"8316:46:23"}]},"documentation":{"id":2914,"nodeType":"StructuredDocumentation","src":"8137:99:23","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":2924,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8250:22:23","nodeType":"FunctionDefinition","parameters":{"id":2915,"nodeType":"ParameterList","parameters":[],"src":"8272:2:23"},"returnParameters":{"id":2918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2924,"src":"8298:6:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2916,"name":"uint64","nodeType":"ElementaryTypeName","src":"8298:6:23","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8297:8:23"},"scope":2959,"src":"8241:128:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2934,"nodeType":"Block","src":"8541:64:23","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2930,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"8558:24:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$2702_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":2931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8558:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":2932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8585:13:23","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":2701,"src":"8558:40:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2929,"id":2933,"nodeType":"Return","src":"8551:47:23"}]},"documentation":{"id":2925,"nodeType":"StructuredDocumentation","src":"8375:105:23","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":2935,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8494:15:23","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"8509:2:23"},"returnParameters":{"id":2929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2935,"src":"8535:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2927,"name":"bool","nodeType":"ElementaryTypeName","src":"8535:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8534:6:23"},"scope":2959,"src":"8485:120:23","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2943,"nodeType":"Block","src":"8896:45:23","statements":[{"expression":{"id":2941,"name":"INITIALIZABLE_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"8913:21:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2940,"id":2942,"nodeType":"Return","src":"8906:28:23"}]},"documentation":{"id":2936,"nodeType":"StructuredDocumentation","src":"8611:203:23","text":" @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n NOTE: Consider following the ERC-7201 formula to derive storage locations."},"id":2944,"implemented":true,"kind":"function","modifiers":[],"name":"_initializableStorageSlot","nameLocation":"8828:25:23","nodeType":"FunctionDefinition","parameters":{"id":2937,"nodeType":"ParameterList","parameters":[],"src":"8853:2:23"},"returnParameters":{"id":2940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2944,"src":"8887:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8887:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8886:9:23"},"scope":2959,"src":"8819:122:23","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":2957,"nodeType":"Block","src":"9161:115:23","statements":[{"assignments":[2952],"declarations":[{"constant":false,"id":2952,"mutability":"mutable","name":"slot","nameLocation":"9179:4:23","nodeType":"VariableDeclaration","scope":2957,"src":"9171:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9171:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2953,"name":"_initializableStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"9186:25:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":2954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9171:42:23"},{"AST":{"nativeSrc":"9232:38:23","nodeType":"YulBlock","src":"9232:38:23","statements":[{"nativeSrc":"9246:14:23","nodeType":"YulAssignment","src":"9246:14:23","value":{"name":"slot","nativeSrc":"9256:4:23","nodeType":"YulIdentifier","src":"9256:4:23"},"variableNames":[{"name":"$.slot","nativeSrc":"9246:6:23","nodeType":"YulIdentifier","src":"9246:6:23"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2949,"isOffset":false,"isSlot":true,"src":"9246:6:23","suffix":"slot","valueSize":1},{"declaration":2952,"isOffset":false,"isSlot":false,"src":"9256:4:23","valueSize":1}],"id":2956,"nodeType":"InlineAssembly","src":"9223:47:23"}]},"documentation":{"id":2945,"nodeType":"StructuredDocumentation","src":"8947:67:23","text":" @dev Returns a pointer to the storage namespace."},"id":2958,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"9080:24:23","nodeType":"FunctionDefinition","parameters":{"id":2946,"nodeType":"ParameterList","parameters":[],"src":"9104:2:23"},"returnParameters":{"id":2950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2949,"mutability":"mutable","name":"$","nameLocation":"9158:1:23","nodeType":"VariableDeclaration","scope":2958,"src":"9129:30:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":2948,"nodeType":"UserDefinedTypeName","pathNode":{"id":2947,"name":"InitializableStorage","nameLocations":["9129:20:23"],"nodeType":"IdentifierPath","referencedDeclaration":2702,"src":"9129:20:23"},"referencedDeclaration":2702,"src":"9129:20:23","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$2702_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"9128:32:23"},"scope":2959,"src":"9071:205:23","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2960,"src":"2349:6929:23","usedErrors":[2708,2711],"usedEvents":[2716]}],"src":"113:9166:23"},"id":23},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[3005],"Initializable":[2959]},"id":3006,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2961,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:24"},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2963,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3006,"sourceUnit":2960,"src":"126:63:24","symbolAliases":[{"foreign":{"id":2962,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"134:13:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2965,"name":"Initializable","nameLocations":["728:13:24"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"728:13:24"},"id":2966,"nodeType":"InheritanceSpecifier","src":"728:13:24"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2964,"nodeType":"StructuredDocumentation","src":"191:496:24","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":3005,"linearizedBaseContracts":[3005,2959],"name":"ContextUpgradeable","nameLocation":"706:18:24","nodeType":"ContractDefinition","nodes":[{"body":{"id":2971,"nodeType":"Block","src":"800:7:24","statements":[]},"id":2972,"implemented":true,"kind":"function","modifiers":[{"id":2969,"kind":"modifierInvocation","modifierName":{"id":2968,"name":"onlyInitializing","nameLocations":["783:16:24"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"783:16:24"},"nodeType":"ModifierInvocation","src":"783:16:24"}],"name":"__Context_init","nameLocation":"757:14:24","nodeType":"FunctionDefinition","parameters":{"id":2967,"nodeType":"ParameterList","parameters":[],"src":"771:2:24"},"returnParameters":{"id":2970,"nodeType":"ParameterList","parameters":[],"src":"800:0:24"},"scope":3005,"src":"748:59:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2977,"nodeType":"Block","src":"875:7:24","statements":[]},"id":2978,"implemented":true,"kind":"function","modifiers":[{"id":2975,"kind":"modifierInvocation","modifierName":{"id":2974,"name":"onlyInitializing","nameLocations":["858:16:24"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"858:16:24"},"nodeType":"ModifierInvocation","src":"858:16:24"}],"name":"__Context_init_unchained","nameLocation":"822:24:24","nodeType":"FunctionDefinition","parameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"846:2:24"},"returnParameters":{"id":2976,"nodeType":"ParameterList","parameters":[],"src":"875:0:24"},"scope":3005,"src":"813:69:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2986,"nodeType":"Block","src":"949:34:24","statements":[{"expression":{"expression":{"id":2983,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"966:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"970:6:24","memberName":"sender","nodeType":"MemberAccess","src":"966:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2982,"id":2985,"nodeType":"Return","src":"959:17:24"}]},"id":2987,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"896:10:24","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"906:2:24"},"returnParameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2987,"src":"940:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2980,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:9:24"},"scope":3005,"src":"887:96:24","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2995,"nodeType":"Block","src":"1056:32:24","statements":[{"expression":{"expression":{"id":2992,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1073:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1077:4:24","memberName":"data","nodeType":"MemberAccess","src":"1073:8:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2991,"id":2994,"nodeType":"Return","src":"1066:15:24"}]},"id":2996,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"998:8:24","nodeType":"FunctionDefinition","parameters":{"id":2988,"nodeType":"ParameterList","parameters":[],"src":"1006:2:24"},"returnParameters":{"id":2991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2996,"src":"1040:14:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2989,"name":"bytes","nodeType":"ElementaryTypeName","src":"1040:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1039:16:24"},"scope":3005,"src":"989:99:24","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3003,"nodeType":"Block","src":"1166:25:24","statements":[{"expression":{"hexValue":"30","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3000,"id":3002,"nodeType":"Return","src":"1176:8:24"}]},"id":3004,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1103:20:24","nodeType":"FunctionDefinition","parameters":{"id":2997,"nodeType":"ParameterList","parameters":[],"src":"1123:2:24"},"returnParameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3004,"src":"1157:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:9:24"},"scope":3005,"src":"1094:97:24","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3006,"src":"688:505:24","usedErrors":[2708,2711],"usedEvents":[2716]}],"src":"101:1093:24"},"id":24},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[3005],"Initializable":[2959],"PausableUpgradeable":[3165]},"id":3166,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3007,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:25"},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":3009,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3166,"sourceUnit":3006,"src":"128:67:25","symbolAliases":[{"foreign":{"id":3008,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"136:18:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":3011,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3166,"sourceUnit":2960,"src":"196:63:25","symbolAliases":[{"foreign":{"id":3010,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"204:13:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3013,"name":"Initializable","nameLocations":["742:13:25"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"742:13:25"},"id":3014,"nodeType":"InheritanceSpecifier","src":"742:13:25"},{"baseName":{"id":3015,"name":"ContextUpgradeable","nameLocations":["757:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":3005,"src":"757:18:25"},"id":3016,"nodeType":"InheritanceSpecifier","src":"757:18:25"}],"canonicalName":"PausableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3012,"nodeType":"StructuredDocumentation","src":"261:439:25","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":3165,"linearizedBaseContracts":[3165,3005,2959],"name":"PausableUpgradeable","nameLocation":"719:19:25","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PausableUpgradeable.PausableStorage","documentation":{"id":3017,"nodeType":"StructuredDocumentation","src":"782:66:25","text":"@custom:storage-location erc7201:openzeppelin.storage.Pausable"},"id":3020,"members":[{"constant":false,"id":3019,"mutability":"mutable","name":"_paused","nameLocation":"891:7:25","nodeType":"VariableDeclaration","scope":3020,"src":"886:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3018,"name":"bool","nodeType":"ElementaryTypeName","src":"886:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"PausableStorage","nameLocation":"860:15:25","nodeType":"StructDefinition","scope":3165,"src":"853:52:25","visibility":"public"},{"constant":true,"id":3023,"mutability":"constant","name":"PausableStorageLocation","nameLocation":"1048:23:25","nodeType":"VariableDeclaration","scope":3165,"src":"1023:117:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1023:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863643565643135633665313837653737653961656538383138346332316634663231383261623538323763623362376530376662656463643633663033333030","id":3022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1074:66:25","typeDescriptions":{"typeIdentifier":"t_rational_92891662540554778686986514950364265630913525426840345632122912437671245656832_by_1","typeString":"int_const 9289...(69 digits omitted)...6832"},"value":"0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300"},"visibility":"private"},{"body":{"id":3030,"nodeType":"Block","src":"1227:82:25","statements":[{"AST":{"nativeSrc":"1246:57:25","nodeType":"YulBlock","src":"1246:57:25","statements":[{"nativeSrc":"1260:33:25","nodeType":"YulAssignment","src":"1260:33:25","value":{"name":"PausableStorageLocation","nativeSrc":"1270:23:25","nodeType":"YulIdentifier","src":"1270:23:25"},"variableNames":[{"name":"$.slot","nativeSrc":"1260:6:25","nodeType":"YulIdentifier","src":"1260:6:25"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3027,"isOffset":false,"isSlot":true,"src":"1260:6:25","suffix":"slot","valueSize":1},{"declaration":3023,"isOffset":false,"isSlot":false,"src":"1270:23:25","valueSize":1}],"id":3029,"nodeType":"InlineAssembly","src":"1237:66:25"}]},"id":3031,"implemented":true,"kind":"function","modifiers":[],"name":"_getPausableStorage","nameLocation":"1156:19:25","nodeType":"FunctionDefinition","parameters":{"id":3024,"nodeType":"ParameterList","parameters":[],"src":"1175:2:25"},"returnParameters":{"id":3028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3027,"mutability":"mutable","name":"$","nameLocation":"1224:1:25","nodeType":"VariableDeclaration","scope":3031,"src":"1200:25:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"},"typeName":{"id":3026,"nodeType":"UserDefinedTypeName","pathNode":{"id":3025,"name":"PausableStorage","nameLocations":["1200:15:25"],"nodeType":"IdentifierPath","referencedDeclaration":3020,"src":"1200:15:25"},"referencedDeclaration":3020,"src":"1200:15:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"}},"visibility":"internal"}],"src":"1199:27:25"},"scope":3165,"src":"1147:162:25","stateMutability":"pure","virtual":false,"visibility":"private"},{"anonymous":false,"documentation":{"id":3032,"nodeType":"StructuredDocumentation","src":"1315:73:25","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":3036,"name":"Paused","nameLocation":"1399:6:25","nodeType":"EventDefinition","parameters":{"id":3035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3034,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"1414:7:25","nodeType":"VariableDeclaration","scope":3036,"src":"1406:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3033,"name":"address","nodeType":"ElementaryTypeName","src":"1406:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1405:17:25"},"src":"1393:30:25"},{"anonymous":false,"documentation":{"id":3037,"nodeType":"StructuredDocumentation","src":"1429:70:25","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":3041,"name":"Unpaused","nameLocation":"1510:8:25","nodeType":"EventDefinition","parameters":{"id":3040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3039,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"1527:7:25","nodeType":"VariableDeclaration","scope":3041,"src":"1519:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3038,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1518:17:25"},"src":"1504:32:25"},{"documentation":{"id":3042,"nodeType":"StructuredDocumentation","src":"1542:76:25","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","id":3044,"name":"EnforcedPause","nameLocation":"1629:13:25","nodeType":"ErrorDefinition","parameters":{"id":3043,"nodeType":"ParameterList","parameters":[],"src":"1642:2:25"},"src":"1623:22:25"},{"documentation":{"id":3045,"nodeType":"StructuredDocumentation","src":"1651:80:25","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","id":3047,"name":"ExpectedPause","nameLocation":"1742:13:25","nodeType":"ErrorDefinition","parameters":{"id":3046,"nodeType":"ParameterList","parameters":[],"src":"1755:2:25"},"src":"1736:22:25"},{"body":{"id":3054,"nodeType":"Block","src":"1969:47:25","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3050,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3103,"src":"1979:17:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1979:19:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3052,"nodeType":"ExpressionStatement","src":"1979:19:25"},{"id":3053,"nodeType":"PlaceholderStatement","src":"2008:1:25"}]},"documentation":{"id":3048,"nodeType":"StructuredDocumentation","src":"1764:175:25","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":3055,"name":"whenNotPaused","nameLocation":"1953:13:25","nodeType":"ModifierDefinition","parameters":{"id":3049,"nodeType":"ParameterList","parameters":[],"src":"1966:2:25"},"src":"1944:72:25","virtual":false,"visibility":"internal"},{"body":{"id":3062,"nodeType":"Block","src":"2216:44:25","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3058,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3116,"src":"2226:14:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:16:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3060,"nodeType":"ExpressionStatement","src":"2226:16:25"},{"id":3061,"nodeType":"PlaceholderStatement","src":"2252:1:25"}]},"documentation":{"id":3056,"nodeType":"StructuredDocumentation","src":"2022:167:25","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":3063,"name":"whenPaused","nameLocation":"2203:10:25","nodeType":"ModifierDefinition","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[],"src":"2213:2:25"},"src":"2194:66:25","virtual":false,"visibility":"internal"},{"body":{"id":3068,"nodeType":"Block","src":"2319:7:25","statements":[]},"id":3069,"implemented":true,"kind":"function","modifiers":[{"id":3066,"kind":"modifierInvocation","modifierName":{"id":3065,"name":"onlyInitializing","nameLocations":["2302:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"2302:16:25"},"nodeType":"ModifierInvocation","src":"2302:16:25"}],"name":"__Pausable_init","nameLocation":"2275:15:25","nodeType":"FunctionDefinition","parameters":{"id":3064,"nodeType":"ParameterList","parameters":[],"src":"2290:2:25"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[],"src":"2319:0:25"},"scope":3165,"src":"2266:60:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3074,"nodeType":"Block","src":"2395:7:25","statements":[]},"id":3075,"implemented":true,"kind":"function","modifiers":[{"id":3072,"kind":"modifierInvocation","modifierName":{"id":3071,"name":"onlyInitializing","nameLocations":["2378:16:25"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"2378:16:25"},"nodeType":"ModifierInvocation","src":"2378:16:25"}],"name":"__Pausable_init_unchained","nameLocation":"2341:25:25","nodeType":"FunctionDefinition","parameters":{"id":3070,"nodeType":"ParameterList","parameters":[],"src":"2366:2:25"},"returnParameters":{"id":3073,"nodeType":"ParameterList","parameters":[],"src":"2395:0:25"},"scope":3165,"src":"2332:70:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3090,"nodeType":"Block","src":"2549:92:25","statements":[{"assignments":[3083],"declarations":[{"constant":false,"id":3083,"mutability":"mutable","name":"$","nameLocation":"2583:1:25","nodeType":"VariableDeclaration","scope":3090,"src":"2559:25:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"},"typeName":{"id":3082,"nodeType":"UserDefinedTypeName","pathNode":{"id":3081,"name":"PausableStorage","nameLocations":["2559:15:25"],"nodeType":"IdentifierPath","referencedDeclaration":3020,"src":"2559:15:25"},"referencedDeclaration":3020,"src":"2559:15:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"}},"visibility":"internal"}],"id":3086,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3084,"name":"_getPausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2587:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$3020_storage_ptr_$","typeString":"function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2559:49:25"},{"expression":{"expression":{"id":3087,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"2625:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"id":3088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2627:7:25","memberName":"_paused","nodeType":"MemberAccess","referencedDeclaration":3019,"src":"2625:9:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3080,"id":3089,"nodeType":"Return","src":"2618:16:25"}]},"documentation":{"id":3076,"nodeType":"StructuredDocumentation","src":"2407:84:25","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":3091,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"2505:6:25","nodeType":"FunctionDefinition","parameters":{"id":3077,"nodeType":"ParameterList","parameters":[],"src":"2511:2:25"},"returnParameters":{"id":3080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3091,"src":"2543:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3078,"name":"bool","nodeType":"ElementaryTypeName","src":"2543:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2542:6:25"},"scope":3165,"src":"2496:145:25","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3102,"nodeType":"Block","src":"2760:77:25","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":3095,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"2774:6:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:8:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3101,"nodeType":"IfStatement","src":"2770:61:25","trueBody":{"id":3100,"nodeType":"Block","src":"2784:47:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3097,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3044,"src":"2805:13:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2805:15:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3099,"nodeType":"RevertStatement","src":"2798:22:25"}]}}]},"documentation":{"id":3092,"nodeType":"StructuredDocumentation","src":"2647:57:25","text":" @dev Throws if the contract is paused."},"id":3103,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"2718:17:25","nodeType":"FunctionDefinition","parameters":{"id":3093,"nodeType":"ParameterList","parameters":[],"src":"2735:2:25"},"returnParameters":{"id":3094,"nodeType":"ParameterList","parameters":[],"src":"2760:0:25"},"scope":3165,"src":"2709:128:25","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3115,"nodeType":"Block","src":"2957:78:25","statements":[{"condition":{"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2971:9:25","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3107,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"2972:6:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:8:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3114,"nodeType":"IfStatement","src":"2967:62:25","trueBody":{"id":3113,"nodeType":"Block","src":"2982:47:25","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3110,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3047,"src":"3003:13:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3003:15:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3112,"nodeType":"RevertStatement","src":"2996:22:25"}]}}]},"documentation":{"id":3104,"nodeType":"StructuredDocumentation","src":"2843:61:25","text":" @dev Throws if the contract is not paused."},"id":3116,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"2918:14:25","nodeType":"FunctionDefinition","parameters":{"id":3105,"nodeType":"ParameterList","parameters":[],"src":"2932:2:25"},"returnParameters":{"id":3106,"nodeType":"ParameterList","parameters":[],"src":"2957:0:25"},"scope":3165,"src":"2909:126:25","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3139,"nodeType":"Block","src":"3219:127:25","statements":[{"assignments":[3124],"declarations":[{"constant":false,"id":3124,"mutability":"mutable","name":"$","nameLocation":"3253:1:25","nodeType":"VariableDeclaration","scope":3139,"src":"3229:25:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"},"typeName":{"id":3123,"nodeType":"UserDefinedTypeName","pathNode":{"id":3122,"name":"PausableStorage","nameLocations":["3229:15:25"],"nodeType":"IdentifierPath","referencedDeclaration":3020,"src":"3229:15:25"},"referencedDeclaration":3020,"src":"3229:15:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"}},"visibility":"internal"}],"id":3127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3125,"name":"_getPausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"3257:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$3020_storage_ptr_$","typeString":"function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)"}},"id":3126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3257:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3229:49:25"},{"expression":{"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3128,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"3288:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"id":3130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3290:7:25","memberName":"_paused","nodeType":"MemberAccess","referencedDeclaration":3019,"src":"3288:9:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3300:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3288:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3133,"nodeType":"ExpressionStatement","src":"3288:16:25"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3135,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"3326:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3134,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3036,"src":"3319:6:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3319:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3138,"nodeType":"EmitStatement","src":"3314:25:25"}]},"documentation":{"id":3117,"nodeType":"StructuredDocumentation","src":"3041:124:25","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":3140,"implemented":true,"kind":"function","modifiers":[{"id":3120,"kind":"modifierInvocation","modifierName":{"id":3119,"name":"whenNotPaused","nameLocations":["3205:13:25"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"3205:13:25"},"nodeType":"ModifierInvocation","src":"3205:13:25"}],"name":"_pause","nameLocation":"3179:6:25","nodeType":"FunctionDefinition","parameters":{"id":3118,"nodeType":"ParameterList","parameters":[],"src":"3185:2:25"},"returnParameters":{"id":3121,"nodeType":"ParameterList","parameters":[],"src":"3219:0:25"},"scope":3165,"src":"3170:176:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3163,"nodeType":"Block","src":"3526:130:25","statements":[{"assignments":[3148],"declarations":[{"constant":false,"id":3148,"mutability":"mutable","name":"$","nameLocation":"3560:1:25","nodeType":"VariableDeclaration","scope":3163,"src":"3536:25:25","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"},"typeName":{"id":3147,"nodeType":"UserDefinedTypeName","pathNode":{"id":3146,"name":"PausableStorage","nameLocations":["3536:15:25"],"nodeType":"IdentifierPath","referencedDeclaration":3020,"src":"3536:15:25"},"referencedDeclaration":3020,"src":"3536:15:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage"}},"visibility":"internal"}],"id":3151,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3149,"name":"_getPausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"3564:19:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$3020_storage_ptr_$","typeString":"function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)"}},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3564:21:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3536:49:25"},{"expression":{"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3152,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3148,"src":"3595:1:25","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$3020_storage_ptr","typeString":"struct PausableUpgradeable.PausableStorage storage pointer"}},"id":3154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3597:7:25","memberName":"_paused","nodeType":"MemberAccess","referencedDeclaration":3019,"src":"3595:9:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3607:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3595:17:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3157,"nodeType":"ExpressionStatement","src":"3595:17:25"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3159,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2987,"src":"3636:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3636:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3158,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3041,"src":"3627:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3627:22:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3162,"nodeType":"EmitStatement","src":"3622:27:25"}]},"documentation":{"id":3141,"nodeType":"StructuredDocumentation","src":"3352:121:25","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":3164,"implemented":true,"kind":"function","modifiers":[{"id":3144,"kind":"modifierInvocation","modifierName":{"id":3143,"name":"whenPaused","nameLocations":["3515:10:25"],"nodeType":"IdentifierPath","referencedDeclaration":3063,"src":"3515:10:25"},"nodeType":"ModifierInvocation","src":"3515:10:25"}],"name":"_unpause","nameLocation":"3487:8:25","nodeType":"FunctionDefinition","parameters":{"id":3142,"nodeType":"ParameterList","parameters":[],"src":"3495:2:25"},"returnParameters":{"id":3145,"nodeType":"ParameterList","parameters":[],"src":"3526:0:25"},"scope":3165,"src":"3478:178:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3166,"src":"701:2957:25","usedErrors":[2708,2711,3044,3047],"usedEvents":[2716,3036,3041]}],"src":"102:3557:25"},"id":25},"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol","exportedSymbols":{"ERC165Upgradeable":[3205],"IERC165":[5012],"Initializable":[2959]},"id":3206,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3167,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:26"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":3169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3206,"sourceUnit":5013,"src":"140:80:26","symbolAliases":[{"foreign":{"id":3168,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"148:7:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":3171,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3206,"sourceUnit":2960,"src":"221:66:26","symbolAliases":[{"foreign":{"id":3170,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"229:13:26","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3173,"name":"Initializable","nameLocations":["808:13:26"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"808:13:26"},"id":3174,"nodeType":"InheritanceSpecifier","src":"808:13:26"},{"baseName":{"id":3175,"name":"IERC165","nameLocations":["823:7:26"],"nodeType":"IdentifierPath","referencedDeclaration":5012,"src":"823:7:26"},"id":3176,"nodeType":"InheritanceSpecifier","src":"823:7:26"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3172,"nodeType":"StructuredDocumentation","src":"289:479:26","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":3205,"linearizedBaseContracts":[3205,5012,2959],"name":"ERC165Upgradeable","nameLocation":"787:17:26","nodeType":"ContractDefinition","nodes":[{"body":{"id":3181,"nodeType":"Block","src":"888:7:26","statements":[]},"id":3182,"implemented":true,"kind":"function","modifiers":[{"id":3179,"kind":"modifierInvocation","modifierName":{"id":3178,"name":"onlyInitializing","nameLocations":["871:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"871:16:26"},"nodeType":"ModifierInvocation","src":"871:16:26"}],"name":"__ERC165_init","nameLocation":"846:13:26","nodeType":"FunctionDefinition","parameters":{"id":3177,"nodeType":"ParameterList","parameters":[],"src":"859:2:26"},"returnParameters":{"id":3180,"nodeType":"ParameterList","parameters":[],"src":"888:0:26"},"scope":3205,"src":"837:58:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3187,"nodeType":"Block","src":"962:7:26","statements":[]},"id":3188,"implemented":true,"kind":"function","modifiers":[{"id":3185,"kind":"modifierInvocation","modifierName":{"id":3184,"name":"onlyInitializing","nameLocations":["945:16:26"],"nodeType":"IdentifierPath","referencedDeclaration":2854,"src":"945:16:26"},"nodeType":"ModifierInvocation","src":"945:16:26"}],"name":"__ERC165_init_unchained","nameLocation":"910:23:26","nodeType":"FunctionDefinition","parameters":{"id":3183,"nodeType":"ParameterList","parameters":[],"src":"933:2:26"},"returnParameters":{"id":3186,"nodeType":"ParameterList","parameters":[],"src":"962:0:26"},"scope":3205,"src":"901:68:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5011],"body":{"id":3203,"nodeType":"Block","src":"1084:64:26","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3196,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3191,"src":"1101:11:26","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3198,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"1121:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$5012_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$5012_$","typeString":"type(contract IERC165)"}],"id":3197,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1116:4:26","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$5012","typeString":"type(contract IERC165)"}},"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1130:11:26","memberName":"interfaceId","nodeType":"MemberAccess","src":"1116:25:26","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1101:40:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3195,"id":3202,"nodeType":"Return","src":"1094:47:26"}]},"documentation":{"id":3189,"nodeType":"StructuredDocumentation","src":"974:23:26","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":3204,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1011:17:26","nodeType":"FunctionDefinition","parameters":{"id":3192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3191,"mutability":"mutable","name":"interfaceId","nameLocation":"1036:11:26","nodeType":"VariableDeclaration","scope":3204,"src":"1029:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3190,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1029:6:26","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1028:20:26"},"returnParameters":{"id":3195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3204,"src":"1078:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3193,"name":"bool","nodeType":"ElementaryTypeName","src":"1078:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1077:6:26"},"scope":3205,"src":"1002:146:26","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3206,"src":"769:381:26","usedErrors":[2708,2711],"usedEvents":[2716]}],"src":"114:1037:26"},"id":26},"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[3288]},"id":3289,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3207,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"109:24:27"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":3208,"nodeType":"StructuredDocumentation","src":"135:90:27","text":" @dev External interface of AccessControl declared to support ERC-165 detection."},"fullyImplemented":false,"id":3288,"linearizedBaseContracts":[3288],"name":"IAccessControl","nameLocation":"236:14:27","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3209,"nodeType":"StructuredDocumentation","src":"257:56:27","text":" @dev The `account` is missing a role."},"errorSelector":"e2517d3f","id":3215,"name":"AccessControlUnauthorizedAccount","nameLocation":"324:32:27","nodeType":"ErrorDefinition","parameters":{"id":3214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3211,"mutability":"mutable","name":"account","nameLocation":"365:7:27","nodeType":"VariableDeclaration","scope":3215,"src":"357:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3210,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3213,"mutability":"mutable","name":"neededRole","nameLocation":"382:10:27","nodeType":"VariableDeclaration","scope":3215,"src":"374:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"356:37:27"},"src":"318:76:27"},{"documentation":{"id":3216,"nodeType":"StructuredDocumentation","src":"400:148:27","text":" @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."},"errorSelector":"6697b232","id":3218,"name":"AccessControlBadConfirmation","nameLocation":"559:28:27","nodeType":"ErrorDefinition","parameters":{"id":3217,"nodeType":"ParameterList","parameters":[],"src":"587:2:27"},"src":"553:37:27"},{"anonymous":false,"documentation":{"id":3219,"nodeType":"StructuredDocumentation","src":"596:254:27","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted to signal this."},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":3227,"name":"RoleAdminChanged","nameLocation":"861:16:27","nodeType":"EventDefinition","parameters":{"id":3226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3221,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"894:4:27","nodeType":"VariableDeclaration","scope":3227,"src":"878:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3223,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"916:17:27","nodeType":"VariableDeclaration","scope":3227,"src":"900:33:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"900:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3225,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"951:12:27","nodeType":"VariableDeclaration","scope":3227,"src":"935:28:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"935:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"877:87:27"},"src":"855:110:27"},{"anonymous":false,"documentation":{"id":3228,"nodeType":"StructuredDocumentation","src":"971:295:27","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":3236,"name":"RoleGranted","nameLocation":"1277:11:27","nodeType":"EventDefinition","parameters":{"id":3235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3230,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1305:4:27","nodeType":"VariableDeclaration","scope":3236,"src":"1289:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3232,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1327:7:27","nodeType":"VariableDeclaration","scope":3236,"src":"1311:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3231,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3234,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1352:6:27","nodeType":"VariableDeclaration","scope":3236,"src":"1336:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3233,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:71:27"},"src":"1271:89:27"},{"anonymous":false,"documentation":{"id":3237,"nodeType":"StructuredDocumentation","src":"1366:275:27","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":3245,"name":"RoleRevoked","nameLocation":"1652:11:27","nodeType":"EventDefinition","parameters":{"id":3244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3239,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1680:4:27","nodeType":"VariableDeclaration","scope":3245,"src":"1664:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1664:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3241,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1702:7:27","nodeType":"VariableDeclaration","scope":3245,"src":"1686:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3240,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3243,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1727:6:27","nodeType":"VariableDeclaration","scope":3245,"src":"1711:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3242,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:71:27"},"src":"1646:89:27"},{"documentation":{"id":3246,"nodeType":"StructuredDocumentation","src":"1741:76:27","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":3255,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1831:7:27","nodeType":"FunctionDefinition","parameters":{"id":3251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"role","nameLocation":"1847:4:27","nodeType":"VariableDeclaration","scope":3255,"src":"1839:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1839:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3250,"mutability":"mutable","name":"account","nameLocation":"1861:7:27","nodeType":"VariableDeclaration","scope":3255,"src":"1853:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3249,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1838:31:27"},"returnParameters":{"id":3254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3255,"src":"1893:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3252,"name":"bool","nodeType":"ElementaryTypeName","src":"1893:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1892:6:27"},"scope":3288,"src":"1822:77:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3256,"nodeType":"StructuredDocumentation","src":"1905:184:27","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":3263,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"2103:12:27","nodeType":"FunctionDefinition","parameters":{"id":3259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3258,"mutability":"mutable","name":"role","nameLocation":"2124:4:27","nodeType":"VariableDeclaration","scope":3263,"src":"2116:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2116:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2115:14:27"},"returnParameters":{"id":3262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3263,"src":"2153:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2152:9:27"},"scope":3288,"src":"2094:68:27","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3264,"nodeType":"StructuredDocumentation","src":"2168:239:27","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":3271,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2421:9:27","nodeType":"FunctionDefinition","parameters":{"id":3269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3266,"mutability":"mutable","name":"role","nameLocation":"2439:4:27","nodeType":"VariableDeclaration","scope":3271,"src":"2431:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2431:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3268,"mutability":"mutable","name":"account","nameLocation":"2453:7:27","nodeType":"VariableDeclaration","scope":3271,"src":"2445:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3267,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2430:31:27"},"returnParameters":{"id":3270,"nodeType":"ParameterList","parameters":[],"src":"2470:0:27"},"scope":3288,"src":"2412:59:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3272,"nodeType":"StructuredDocumentation","src":"2477:223:27","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":3279,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2714:10:27","nodeType":"FunctionDefinition","parameters":{"id":3277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3274,"mutability":"mutable","name":"role","nameLocation":"2733:4:27","nodeType":"VariableDeclaration","scope":3279,"src":"2725:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2725:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3276,"mutability":"mutable","name":"account","nameLocation":"2747:7:27","nodeType":"VariableDeclaration","scope":3279,"src":"2739:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3275,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2724:31:27"},"returnParameters":{"id":3278,"nodeType":"ParameterList","parameters":[],"src":"2764:0:27"},"scope":3288,"src":"2705:60:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3280,"nodeType":"StructuredDocumentation","src":"2771:491:27","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."},"functionSelector":"36568abe","id":3287,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"3276:12:27","nodeType":"FunctionDefinition","parameters":{"id":3285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"role","nameLocation":"3297:4:27","nodeType":"VariableDeclaration","scope":3287,"src":"3289:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3284,"mutability":"mutable","name":"callerConfirmation","nameLocation":"3311:18:27","nodeType":"VariableDeclaration","scope":3287,"src":"3303:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3283,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3288:42:27"},"returnParameters":{"id":3286,"nodeType":"ParameterList","parameters":[],"src":"3339:0:27"},"scope":3288,"src":"3267:73:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3289,"src":"226:3116:27","usedErrors":[3215,3218],"usedEvents":[3227,3236,3245]}],"src":"109:3234:27"},"id":27},"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/access/extensions/IAccessControlEnumerable.sol","exportedSymbols":{"IAccessControl":[3288],"IAccessControlEnumerable":[3314]},"id":3315,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3290,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"130:24:28"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/access/IAccessControl.sol","file":"../IAccessControl.sol","id":3292,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3315,"sourceUnit":3289,"src":"156:53:28","symbolAliases":[{"foreign":{"id":3291,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"164:14:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3294,"name":"IAccessControl","nameLocations":["350:14:28"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"350:14:28"},"id":3295,"nodeType":"InheritanceSpecifier","src":"350:14:28"}],"canonicalName":"IAccessControlEnumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":3293,"nodeType":"StructuredDocumentation","src":"211:100:28","text":" @dev External interface of AccessControlEnumerable declared to support ERC-165 detection."},"fullyImplemented":false,"id":3314,"linearizedBaseContracts":[3314,3288],"name":"IAccessControlEnumerable","nameLocation":"322:24:28","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3296,"nodeType":"StructuredDocumentation","src":"371:574:28","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":3305,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"959:13:28","nodeType":"FunctionDefinition","parameters":{"id":3301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3298,"mutability":"mutable","name":"role","nameLocation":"981:4:28","nodeType":"VariableDeclaration","scope":3305,"src":"973:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"973:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"index","nameLocation":"995:5:28","nodeType":"VariableDeclaration","scope":3305,"src":"987:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3299,"name":"uint256","nodeType":"ElementaryTypeName","src":"987:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"972:29:28"},"returnParameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3305,"src":"1025:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3302,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1024:9:28"},"scope":3314,"src":"950:84:28","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3306,"nodeType":"StructuredDocumentation","src":"1040:157:28","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":3313,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1211:18:28","nodeType":"FunctionDefinition","parameters":{"id":3309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3308,"mutability":"mutable","name":"role","nameLocation":"1238:4:28","nodeType":"VariableDeclaration","scope":3313,"src":"1230:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1229:14:28"},"returnParameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3313,"src":"1267:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1267:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1266:9:28"},"scope":3314,"src":"1202:74:28","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3315,"src":"312:966:28","usedErrors":[3215,3218],"usedEvents":[3227,3236,3245]}],"src":"130:1149:28"},"id":28},"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[3392]},"id":3393,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3316,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"106:25:29"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":3317,"nodeType":"StructuredDocumentation","src":"133:71:29","text":" @dev Interface of the ERC-20 standard as defined in the ERC."},"fullyImplemented":false,"id":3392,"linearizedBaseContracts":[3392],"name":"IERC20","nameLocation":"215:6:29","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":3318,"nodeType":"StructuredDocumentation","src":"228:158:29","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":3326,"name":"Transfer","nameLocation":"397:8:29","nodeType":"EventDefinition","parameters":{"id":3325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3320,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"422:4:29","nodeType":"VariableDeclaration","scope":3326,"src":"406:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3319,"name":"address","nodeType":"ElementaryTypeName","src":"406:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3322,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"444:2:29","nodeType":"VariableDeclaration","scope":3326,"src":"428:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3321,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3324,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"456:5:29","nodeType":"VariableDeclaration","scope":3326,"src":"448:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3323,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"405:57:29"},"src":"391:72:29"},{"anonymous":false,"documentation":{"id":3327,"nodeType":"StructuredDocumentation","src":"469:148:29","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":3335,"name":"Approval","nameLocation":"628:8:29","nodeType":"EventDefinition","parameters":{"id":3334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3329,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"653:5:29","nodeType":"VariableDeclaration","scope":3335,"src":"637:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3328,"name":"address","nodeType":"ElementaryTypeName","src":"637:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3331,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"676:7:29","nodeType":"VariableDeclaration","scope":3335,"src":"660:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3330,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3333,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"693:5:29","nodeType":"VariableDeclaration","scope":3335,"src":"685:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3332,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:63:29"},"src":"622:78:29"},{"documentation":{"id":3336,"nodeType":"StructuredDocumentation","src":"706:65:29","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":3341,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"785:11:29","nodeType":"FunctionDefinition","parameters":{"id":3337,"nodeType":"ParameterList","parameters":[],"src":"796:2:29"},"returnParameters":{"id":3340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3341,"src":"822:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3338,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:9:29"},"scope":3392,"src":"776:55:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3342,"nodeType":"StructuredDocumentation","src":"837:71:29","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":3349,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"922:9:29","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3344,"mutability":"mutable","name":"account","nameLocation":"940:7:29","nodeType":"VariableDeclaration","scope":3349,"src":"932:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3343,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:17:29"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3349,"src":"972:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3346,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:9:29"},"scope":3392,"src":"913:68:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3350,"nodeType":"StructuredDocumentation","src":"987:213:29","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":3359,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1214:8:29","nodeType":"FunctionDefinition","parameters":{"id":3355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3352,"mutability":"mutable","name":"to","nameLocation":"1231:2:29","nodeType":"VariableDeclaration","scope":3359,"src":"1223:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3351,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3354,"mutability":"mutable","name":"value","nameLocation":"1243:5:29","nodeType":"VariableDeclaration","scope":3359,"src":"1235:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3353,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:27:29"},"returnParameters":{"id":3358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3359,"src":"1268:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3356,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1267:6:29"},"scope":3392,"src":"1205:69:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3360,"nodeType":"StructuredDocumentation","src":"1280:264:29","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":3369,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1558:9:29","nodeType":"FunctionDefinition","parameters":{"id":3365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3362,"mutability":"mutable","name":"owner","nameLocation":"1576:5:29","nodeType":"VariableDeclaration","scope":3369,"src":"1568:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3361,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3364,"mutability":"mutable","name":"spender","nameLocation":"1591:7:29","nodeType":"VariableDeclaration","scope":3369,"src":"1583:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3363,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:32:29"},"returnParameters":{"id":3368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3369,"src":"1623:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3366,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1622:9:29"},"scope":3392,"src":"1549:83:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":3370,"nodeType":"StructuredDocumentation","src":"1638:667:29","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":3379,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2319:7:29","nodeType":"FunctionDefinition","parameters":{"id":3375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3372,"mutability":"mutable","name":"spender","nameLocation":"2335:7:29","nodeType":"VariableDeclaration","scope":3379,"src":"2327:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3371,"name":"address","nodeType":"ElementaryTypeName","src":"2327:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3374,"mutability":"mutable","name":"value","nameLocation":"2352:5:29","nodeType":"VariableDeclaration","scope":3379,"src":"2344:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2326:32:29"},"returnParameters":{"id":3378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3379,"src":"2377:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3376,"name":"bool","nodeType":"ElementaryTypeName","src":"2377:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2376:6:29"},"scope":3392,"src":"2310:73:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":3380,"nodeType":"StructuredDocumentation","src":"2389:297:29","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":3391,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2700:12:29","nodeType":"FunctionDefinition","parameters":{"id":3387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3382,"mutability":"mutable","name":"from","nameLocation":"2721:4:29","nodeType":"VariableDeclaration","scope":3391,"src":"2713:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3381,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3384,"mutability":"mutable","name":"to","nameLocation":"2735:2:29","nodeType":"VariableDeclaration","scope":3391,"src":"2727:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3383,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3386,"mutability":"mutable","name":"value","nameLocation":"2747:5:29","nodeType":"VariableDeclaration","scope":3391,"src":"2739:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3385,"name":"uint256","nodeType":"ElementaryTypeName","src":"2739:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:41:29"},"returnParameters":{"id":3390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3391,"src":"2772:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3388,"name":"bool","nodeType":"ElementaryTypeName","src":"2772:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2771:6:29"},"scope":3392,"src":"2691:87:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3393,"src":"205:2575:29","usedErrors":[],"usedEvents":[3326,3335]}],"src":"106:2675:29"},"id":29},"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol","exportedSymbols":{"Arrays":[4370],"Comparators":[4402],"Math":[6633],"SlotDerivation":[4653],"StorageSlot":[4777]},"id":4371,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3394,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"183:24:30"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol","file":"./Comparators.sol","id":3396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4371,"sourceUnit":4403,"src":"209:46:30","symbolAliases":[{"foreign":{"id":3395,"name":"Comparators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"217:11:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol","file":"./SlotDerivation.sol","id":3398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4371,"sourceUnit":4654,"src":"256:52:30","symbolAliases":[{"foreign":{"id":3397,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4653,"src":"264:14:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":3400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4371,"sourceUnit":4778,"src":"309:46:30","symbolAliases":[{"foreign":{"id":3399,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4777,"src":"317:11:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol","file":"./math/Math.sol","id":3402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4371,"sourceUnit":6634,"src":"356:37:30","symbolAliases":[{"foreign":{"id":3401,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"364:4:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Arrays","contractDependencies":[],"contractKind":"library","documentation":{"id":3403,"nodeType":"StructuredDocumentation","src":"395:63:30","text":" @dev Collection of functions related to array types."},"fullyImplemented":true,"id":4370,"linearizedBaseContracts":[4370],"name":"Arrays","nameLocation":"467:6:30","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3406,"libraryName":{"id":3404,"name":"SlotDerivation","nameLocations":["486:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":4653,"src":"486:14:30"},"nodeType":"UsingForDirective","src":"480:33:30","typeName":{"id":3405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"505:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":3409,"libraryName":{"id":3407,"name":"StorageSlot","nameLocations":["524:11:30"],"nodeType":"IdentifierPath","referencedDeclaration":4777,"src":"524:11:30"},"nodeType":"UsingForDirective","src":"518:30:30","typeName":{"id":3408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"540:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":3441,"nodeType":"Block","src":"1628:83:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":3431,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"1656:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":3430,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"1649:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256[] memory) pure returns (uint256)"}},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3434,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"1669:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":3433,"name":"_end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3686,"src":"1664:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256[] memory) pure returns (uint256)"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:11:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3436,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"1677:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3429,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"1638:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"}},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1638:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3438,"nodeType":"ExpressionStatement","src":"1638:44:30"},{"expression":{"id":3439,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"1699:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":3428,"id":3440,"nodeType":"Return","src":"1692:12:30"}]},"documentation":{"id":3410,"nodeType":"StructuredDocumentation","src":"554:915:30","text":" @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."},"id":3442,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1483:4:30","nodeType":"FunctionDefinition","parameters":{"id":3424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3413,"mutability":"mutable","name":"array","nameLocation":"1514:5:30","nodeType":"VariableDeclaration","scope":3442,"src":"1497:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3412,"nodeType":"ArrayTypeName","src":"1497:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3423,"mutability":"mutable","name":"comp","nameLocation":"1576:4:30","nodeType":"VariableDeclaration","scope":3442,"src":"1529:51:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":3422,"nodeType":"FunctionTypeName","parameterTypes":{"id":3418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3422,"src":"1538:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3422,"src":"1547:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1537:18:30"},"returnParameterTypes":{"id":3421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3422,"src":"1570:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3419,"name":"bool","nodeType":"ElementaryTypeName","src":"1570:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1569:6:30"},"src":"1529:51:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"1487:99:30"},"returnParameters":{"id":3428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3442,"src":"1610:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1610:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3426,"nodeType":"ArrayTypeName","src":"1610:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1609:18:30"},"scope":4370,"src":"1474:237:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3460,"nodeType":"Block","src":"1894:66:30","statements":[{"expression":{"arguments":[{"id":3453,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3446,"src":"1909:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"expression":{"id":3454,"name":"Comparators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"1916:11:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Comparators_$4402_$","typeString":"type(library Comparators)"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1928:2:30","memberName":"lt","nodeType":"MemberAccess","referencedDeclaration":4387,"src":"1916:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3452,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[3442,3461,3493,3514,3546,3567],"referencedDeclaration":3442,"src":"1904:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1904:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3457,"nodeType":"ExpressionStatement","src":"1904:27:30"},{"expression":{"id":3458,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3446,"src":"1948:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":3451,"id":3459,"nodeType":"Return","src":"1941:12:30"}]},"documentation":{"id":3443,"nodeType":"StructuredDocumentation","src":"1717:93:30","text":" @dev Variant of {sort} that sorts an array of uint256 in increasing order."},"id":3461,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1824:4:30","nodeType":"FunctionDefinition","parameters":{"id":3447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3446,"mutability":"mutable","name":"array","nameLocation":"1846:5:30","nodeType":"VariableDeclaration","scope":3461,"src":"1829:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3444,"name":"uint256","nodeType":"ElementaryTypeName","src":"1829:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3445,"nodeType":"ArrayTypeName","src":"1829:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1828:24:30"},"returnParameters":{"id":3451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3461,"src":"1876:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1876:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3449,"nodeType":"ArrayTypeName","src":"1876:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1875:18:30"},"scope":4370,"src":"1815:145:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3492,"nodeType":"Block","src":"3040:97:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":3483,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"3075:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":3482,"name":"_castToUint256Array","nodeType":"Identifier","overloadedDeclarations":[3718,3730],"referencedDeclaration":3718,"src":"3055:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (uint256[] memory)"}},"id":3484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3055:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"arguments":[{"id":3486,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"3102:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}],"id":3485,"name":"_castToUint256Comp","nodeType":"Identifier","overloadedDeclarations":[3756,3782],"referencedDeclaration":3756,"src":"3083:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$","typeString":"function (function (address,address) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))"}},"id":3487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3083:24:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3481,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[3442,3461,3493,3514,3546,3567],"referencedDeclaration":3442,"src":"3050:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"}},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3050:58:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3489,"nodeType":"ExpressionStatement","src":"3050:58:30"},{"expression":{"id":3490,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3465,"src":"3125:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3480,"id":3491,"nodeType":"Return","src":"3118:12:30"}]},"documentation":{"id":3462,"nodeType":"StructuredDocumentation","src":"1966:915:30","text":" @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."},"id":3493,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2895:4:30","nodeType":"FunctionDefinition","parameters":{"id":3476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3465,"mutability":"mutable","name":"array","nameLocation":"2926:5:30","nodeType":"VariableDeclaration","scope":3493,"src":"2909:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3463,"name":"address","nodeType":"ElementaryTypeName","src":"2909:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3464,"nodeType":"ArrayTypeName","src":"2909:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"comp","nameLocation":"2988:4:30","nodeType":"VariableDeclaration","scope":3493,"src":"2941:51:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":3474,"nodeType":"FunctionTypeName","parameterTypes":{"id":3470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3474,"src":"2950:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3466,"name":"address","nodeType":"ElementaryTypeName","src":"2950:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3474,"src":"2959:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3468,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2949:18:30"},"returnParameterTypes":{"id":3473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3474,"src":"2982:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3471,"name":"bool","nodeType":"ElementaryTypeName","src":"2982:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2981:6:30"},"src":"2941:51:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"2899:99:30"},"returnParameters":{"id":3480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3493,"src":"3022:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3477,"name":"address","nodeType":"ElementaryTypeName","src":"3022:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3478,"nodeType":"ArrayTypeName","src":"3022:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3021:18:30"},"scope":4370,"src":"2886:251:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3513,"nodeType":"Block","src":"3320:87:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":3505,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3497,"src":"3355:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":3504,"name":"_castToUint256Array","nodeType":"Identifier","overloadedDeclarations":[3718,3730],"referencedDeclaration":3718,"src":"3335:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (uint256[] memory)"}},"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3335:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"expression":{"id":3507,"name":"Comparators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"3363:11:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Comparators_$4402_$","typeString":"type(library Comparators)"}},"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:2:30","memberName":"lt","nodeType":"MemberAccess","referencedDeclaration":4387,"src":"3363:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3503,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[3442,3461,3493,3514,3546,3567],"referencedDeclaration":3442,"src":"3330:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"}},"id":3509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3330:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3510,"nodeType":"ExpressionStatement","src":"3330:48:30"},{"expression":{"id":3511,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3497,"src":"3395:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3502,"id":3512,"nodeType":"Return","src":"3388:12:30"}]},"documentation":{"id":3494,"nodeType":"StructuredDocumentation","src":"3143:93:30","text":" @dev Variant of {sort} that sorts an array of address in increasing order."},"id":3514,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"3250:4:30","nodeType":"FunctionDefinition","parameters":{"id":3498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3497,"mutability":"mutable","name":"array","nameLocation":"3272:5:30","nodeType":"VariableDeclaration","scope":3514,"src":"3255:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3495,"name":"address","nodeType":"ElementaryTypeName","src":"3255:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3496,"nodeType":"ArrayTypeName","src":"3255:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3254:24:30"},"returnParameters":{"id":3502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3501,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3514,"src":"3302:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3499,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3500,"nodeType":"ArrayTypeName","src":"3302:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3301:18:30"},"scope":4370,"src":"3241:166:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3545,"nodeType":"Block","src":"4487:97:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":3536,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"4522:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3535,"name":"_castToUint256Array","nodeType":"Identifier","overloadedDeclarations":[3718,3730],"referencedDeclaration":3730,"src":"4502:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (uint256[] memory)"}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4502:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"arguments":[{"id":3539,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3528,"src":"4549:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":3538,"name":"_castToUint256Comp","nodeType":"Identifier","overloadedDeclarations":[3756,3782],"referencedDeclaration":3782,"src":"4530:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$","typeString":"function (function (bytes32,bytes32) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))"}},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4530:24:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3534,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[3442,3461,3493,3514,3546,3567],"referencedDeclaration":3442,"src":"4497:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:58:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3542,"nodeType":"ExpressionStatement","src":"4497:58:30"},{"expression":{"id":3543,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"4572:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":3533,"id":3544,"nodeType":"Return","src":"4565:12:30"}]},"documentation":{"id":3515,"nodeType":"StructuredDocumentation","src":"3413:915:30","text":" @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way."},"id":3546,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"4342:4:30","nodeType":"FunctionDefinition","parameters":{"id":3529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3518,"mutability":"mutable","name":"array","nameLocation":"4373:5:30","nodeType":"VariableDeclaration","scope":3546,"src":"4356:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4356:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3517,"nodeType":"ArrayTypeName","src":"4356:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3528,"mutability":"mutable","name":"comp","nameLocation":"4435:4:30","nodeType":"VariableDeclaration","scope":3546,"src":"4388:51:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":3527,"nodeType":"FunctionTypeName","parameterTypes":{"id":3523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3527,"src":"4397:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4397:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3527,"src":"4406:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4406:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4396:18:30"},"returnParameterTypes":{"id":3526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3527,"src":"4429:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3524,"name":"bool","nodeType":"ElementaryTypeName","src":"4429:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4428:6:30"},"src":"4388:51:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"4346:99:30"},"returnParameters":{"id":3533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3546,"src":"4469:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4469:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3531,"nodeType":"ArrayTypeName","src":"4469:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4468:18:30"},"scope":4370,"src":"4333:251:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3566,"nodeType":"Block","src":"4767:87:30","statements":[{"expression":{"arguments":[{"arguments":[{"id":3558,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"4802:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3557,"name":"_castToUint256Array","nodeType":"Identifier","overloadedDeclarations":[3718,3730],"referencedDeclaration":3730,"src":"4782:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (uint256[] memory)"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"expression":{"id":3560,"name":"Comparators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"4810:11:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Comparators_$4402_$","typeString":"type(library Comparators)"}},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4822:2:30","memberName":"lt","nodeType":"MemberAccess","referencedDeclaration":4387,"src":"4810:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3556,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[3442,3461,3493,3514,3546,3567],"referencedDeclaration":3442,"src":"4777:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)"}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4777:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3563,"nodeType":"ExpressionStatement","src":"4777:48:30"},{"expression":{"id":3564,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"4842:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":3555,"id":3565,"nodeType":"Return","src":"4835:12:30"}]},"documentation":{"id":3547,"nodeType":"StructuredDocumentation","src":"4590:93:30","text":" @dev Variant of {sort} that sorts an array of bytes32 in increasing order."},"id":3567,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"4697:4:30","nodeType":"FunctionDefinition","parameters":{"id":3551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3550,"mutability":"mutable","name":"array","nameLocation":"4719:5:30","nodeType":"VariableDeclaration","scope":3567,"src":"4702:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4702:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3549,"nodeType":"ArrayTypeName","src":"4702:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4701:24:30"},"returnParameters":{"id":3555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3567,"src":"4749:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4749:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3553,"nodeType":"ArrayTypeName","src":"4749:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4748:18:30"},"scope":4370,"src":"4688:166:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3654,"nodeType":"Block","src":"5470:889:30","statements":[{"id":3653,"nodeType":"UncheckedBlock","src":"5480:873:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3585,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"5508:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3586,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"5514:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5508:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783430","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5522:4:30","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"src":"5508:18:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3591,"nodeType":"IfStatement","src":"5504:31:30","trueBody":{"functionReturnParameters":3584,"id":3590,"nodeType":"Return","src":"5528:7:30"}},{"assignments":[3593],"declarations":[{"constant":false,"id":3593,"mutability":"mutable","name":"pivot","nameLocation":"5599:5:30","nodeType":"VariableDeclaration","scope":3653,"src":"5591:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3592,"name":"uint256","nodeType":"ElementaryTypeName","src":"5591:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3597,"initialValue":{"arguments":[{"id":3595,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"5614:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3594,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"5607:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5591:29:30"},{"assignments":[3599],"declarations":[{"constant":false,"id":3599,"mutability":"mutable","name":"pos","nameLocation":"5715:3:30","nodeType":"VariableDeclaration","scope":3653,"src":"5707:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3598,"name":"uint256","nodeType":"ElementaryTypeName","src":"5707:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3601,"initialValue":{"id":3600,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"5721:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5707:19:30"},{"body":{"id":3632,"nodeType":"Block","src":"5795:331:30","statements":[{"condition":{"arguments":[{"arguments":[{"id":3617,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"5829:2:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3616,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3696,"src":"5822:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3619,"name":"pivot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3593,"src":"5834:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3615,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"5817:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":3620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5817:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3631,"nodeType":"IfStatement","src":"5813:299:30","trueBody":{"id":3630,"nodeType":"Block","src":"5842:270:30","statements":[{"expression":{"id":3623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3621,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3599,"src":"6046:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":3622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6053:4:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6046:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3624,"nodeType":"ExpressionStatement","src":"6046:11:30"},{"expression":{"arguments":[{"id":3626,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3599,"src":"6085:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3627,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"6090:2:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3625,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"6079:5:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":3628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6079:14:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3629,"nodeType":"ExpressionStatement","src":"6079:14:30"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3608,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"5773:2:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3609,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"5778:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5773:8:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3633,"initializationExpression":{"assignments":[3603],"declarations":[{"constant":false,"id":3603,"mutability":"mutable","name":"it","nameLocation":"5754:2:30","nodeType":"VariableDeclaration","scope":3633,"src":"5746:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3602,"name":"uint256","nodeType":"ElementaryTypeName","src":"5746:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3607,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3604,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"5759:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":3605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5767:4:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5759:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5746:25:30"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3611,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"5783:2:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":3612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5789:4:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5783:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3614,"nodeType":"ExpressionStatement","src":"5783:10:30"},"nodeType":"ForStatement","src":"5741:385:30"},{"expression":{"arguments":[{"id":3635,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"6146:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3636,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3599,"src":"6153:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3634,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3706,"src":"6140:5:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3638,"nodeType":"ExpressionStatement","src":"6140:17:30"},{"expression":{"arguments":[{"id":3640,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3570,"src":"6207:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3641,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3599,"src":"6214:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3642,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"6219:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3639,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"6196:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"}},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6196:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3644,"nodeType":"ExpressionStatement","src":"6196:28:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3646,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3599,"src":"6284:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":3647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6290:4:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6284:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3649,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3572,"src":"6296:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3650,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3582,"src":"6301:4:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":3645,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"6273:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure"}},"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6273:33:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3652,"nodeType":"ExpressionStatement","src":"6273:33:30"}]}]},"documentation":{"id":3568,"nodeType":"StructuredDocumentation","src":"4860:491:30","text":" @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array."},"id":3655,"implemented":true,"kind":"function","modifiers":[],"name":"_quickSort","nameLocation":"5365:10:30","nodeType":"FunctionDefinition","parameters":{"id":3583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3570,"mutability":"mutable","name":"begin","nameLocation":"5384:5:30","nodeType":"VariableDeclaration","scope":3655,"src":"5376:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3569,"name":"uint256","nodeType":"ElementaryTypeName","src":"5376:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3572,"mutability":"mutable","name":"end","nameLocation":"5399:3:30","nodeType":"VariableDeclaration","scope":3655,"src":"5391:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"5391:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3582,"mutability":"mutable","name":"comp","nameLocation":"5451:4:30","nodeType":"VariableDeclaration","scope":3655,"src":"5404:51:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":3581,"nodeType":"FunctionTypeName","parameterTypes":{"id":3577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3574,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3581,"src":"5413:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3573,"name":"uint256","nodeType":"ElementaryTypeName","src":"5413:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3581,"src":"5422:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3575,"name":"uint256","nodeType":"ElementaryTypeName","src":"5422:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5412:18:30"},"returnParameterTypes":{"id":3580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3581,"src":"5445:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3578,"name":"bool","nodeType":"ElementaryTypeName","src":"5445:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5444:6:30"},"src":"5404:51:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"5375:81:30"},"returnParameters":{"id":3584,"nodeType":"ParameterList","parameters":[],"src":"5470:0:30"},"scope":4370,"src":"5356:1003:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3665,"nodeType":"Block","src":"6532:88:30","statements":[{"AST":{"nativeSrc":"6567:47:30","nodeType":"YulBlock","src":"6567:47:30","statements":[{"nativeSrc":"6581:23:30","nodeType":"YulAssignment","src":"6581:23:30","value":{"arguments":[{"name":"array","nativeSrc":"6592:5:30","nodeType":"YulIdentifier","src":"6592:5:30"},{"kind":"number","nativeSrc":"6599:4:30","nodeType":"YulLiteral","src":"6599:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6588:3:30","nodeType":"YulIdentifier","src":"6588:3:30"},"nativeSrc":"6588:16:30","nodeType":"YulFunctionCall","src":"6588:16:30"},"variableNames":[{"name":"ptr","nativeSrc":"6581:3:30","nodeType":"YulIdentifier","src":"6581:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3659,"isOffset":false,"isSlot":false,"src":"6592:5:30","valueSize":1},{"declaration":3662,"isOffset":false,"isSlot":false,"src":"6581:3:30","valueSize":1}],"flags":["memory-safe"],"id":3664,"nodeType":"InlineAssembly","src":"6542:72:30"}]},"documentation":{"id":3656,"nodeType":"StructuredDocumentation","src":"6365:87:30","text":" @dev Pointer to the memory location of the first element of `array`."},"id":3666,"implemented":true,"kind":"function","modifiers":[],"name":"_begin","nameLocation":"6466:6:30","nodeType":"FunctionDefinition","parameters":{"id":3660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3659,"mutability":"mutable","name":"array","nameLocation":"6490:5:30","nodeType":"VariableDeclaration","scope":3666,"src":"6473:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3657,"name":"uint256","nodeType":"ElementaryTypeName","src":"6473:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3658,"nodeType":"ArrayTypeName","src":"6473:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6472:24:30"},"returnParameters":{"id":3663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3662,"mutability":"mutable","name":"ptr","nameLocation":"6527:3:30","nodeType":"VariableDeclaration","scope":3666,"src":"6519:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3661,"name":"uint256","nodeType":"ElementaryTypeName","src":"6519:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6518:13:30"},"scope":4370,"src":"6457:163:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3685,"nodeType":"Block","src":"6892:93:30","statements":[{"id":3684,"nodeType":"UncheckedBlock","src":"6902:77:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3676,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"6940:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":3675,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"6933:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256[] memory) pure returns (uint256)"}},"id":3677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6933:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3678,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"6949:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6955:6:30","memberName":"length","nodeType":"MemberAccess","src":"6949:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783230","id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6964:4:30","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6949:19:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6933:35:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3674,"id":3683,"nodeType":"Return","src":"6926:42:30"}]}]},"documentation":{"id":3667,"nodeType":"StructuredDocumentation","src":"6626:188:30","text":" @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array."},"id":3686,"implemented":true,"kind":"function","modifiers":[],"name":"_end","nameLocation":"6828:4:30","nodeType":"FunctionDefinition","parameters":{"id":3671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3670,"mutability":"mutable","name":"array","nameLocation":"6850:5:30","nodeType":"VariableDeclaration","scope":3686,"src":"6833:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3668,"name":"uint256","nodeType":"ElementaryTypeName","src":"6833:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3669,"nodeType":"ArrayTypeName","src":"6833:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6832:24:30"},"returnParameters":{"id":3674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3673,"mutability":"mutable","name":"ptr","nameLocation":"6887:3:30","nodeType":"VariableDeclaration","scope":3686,"src":"6879:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3672,"name":"uint256","nodeType":"ElementaryTypeName","src":"6879:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6878:13:30"},"scope":4370,"src":"6819:166:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3695,"nodeType":"Block","src":"7136:68:30","statements":[{"AST":{"nativeSrc":"7155:43:30","nodeType":"YulBlock","src":"7155:43:30","statements":[{"nativeSrc":"7169:19:30","nodeType":"YulAssignment","src":"7169:19:30","value":{"arguments":[{"name":"ptr","nativeSrc":"7184:3:30","nodeType":"YulIdentifier","src":"7184:3:30"}],"functionName":{"name":"mload","nativeSrc":"7178:5:30","nodeType":"YulIdentifier","src":"7178:5:30"},"nativeSrc":"7178:10:30","nodeType":"YulFunctionCall","src":"7178:10:30"},"variableNames":[{"name":"value","nativeSrc":"7169:5:30","nodeType":"YulIdentifier","src":"7169:5:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3689,"isOffset":false,"isSlot":false,"src":"7184:3:30","valueSize":1},{"declaration":3692,"isOffset":false,"isSlot":false,"src":"7169:5:30","valueSize":1}],"id":3694,"nodeType":"InlineAssembly","src":"7146:52:30"}]},"documentation":{"id":3687,"nodeType":"StructuredDocumentation","src":"6991:74:30","text":" @dev Load memory word (as a uint256) at location `ptr`."},"id":3696,"implemented":true,"kind":"function","modifiers":[],"name":"_mload","nameLocation":"7079:6:30","nodeType":"FunctionDefinition","parameters":{"id":3690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3689,"mutability":"mutable","name":"ptr","nameLocation":"7094:3:30","nodeType":"VariableDeclaration","scope":3696,"src":"7086:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3688,"name":"uint256","nodeType":"ElementaryTypeName","src":"7086:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7085:13:30"},"returnParameters":{"id":3693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3692,"mutability":"mutable","name":"value","nameLocation":"7129:5:30","nodeType":"VariableDeclaration","scope":3696,"src":"7121:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3691,"name":"uint256","nodeType":"ElementaryTypeName","src":"7121:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7120:15:30"},"scope":4370,"src":"7070:134:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3705,"nodeType":"Block","src":"7348:178:30","statements":[{"AST":{"nativeSrc":"7367:153:30","nodeType":"YulBlock","src":"7367:153:30","statements":[{"nativeSrc":"7381:25:30","nodeType":"YulVariableDeclaration","src":"7381:25:30","value":{"arguments":[{"name":"ptr1","nativeSrc":"7401:4:30","nodeType":"YulIdentifier","src":"7401:4:30"}],"functionName":{"name":"mload","nativeSrc":"7395:5:30","nodeType":"YulIdentifier","src":"7395:5:30"},"nativeSrc":"7395:11:30","nodeType":"YulFunctionCall","src":"7395:11:30"},"variables":[{"name":"value1","nativeSrc":"7385:6:30","nodeType":"YulTypedName","src":"7385:6:30","type":""}]},{"nativeSrc":"7419:25:30","nodeType":"YulVariableDeclaration","src":"7419:25:30","value":{"arguments":[{"name":"ptr2","nativeSrc":"7439:4:30","nodeType":"YulIdentifier","src":"7439:4:30"}],"functionName":{"name":"mload","nativeSrc":"7433:5:30","nodeType":"YulIdentifier","src":"7433:5:30"},"nativeSrc":"7433:11:30","nodeType":"YulFunctionCall","src":"7433:11:30"},"variables":[{"name":"value2","nativeSrc":"7423:6:30","nodeType":"YulTypedName","src":"7423:6:30","type":""}]},{"expression":{"arguments":[{"name":"ptr1","nativeSrc":"7464:4:30","nodeType":"YulIdentifier","src":"7464:4:30"},{"name":"value2","nativeSrc":"7470:6:30","nodeType":"YulIdentifier","src":"7470:6:30"}],"functionName":{"name":"mstore","nativeSrc":"7457:6:30","nodeType":"YulIdentifier","src":"7457:6:30"},"nativeSrc":"7457:20:30","nodeType":"YulFunctionCall","src":"7457:20:30"},"nativeSrc":"7457:20:30","nodeType":"YulExpressionStatement","src":"7457:20:30"},{"expression":{"arguments":[{"name":"ptr2","nativeSrc":"7497:4:30","nodeType":"YulIdentifier","src":"7497:4:30"},{"name":"value1","nativeSrc":"7503:6:30","nodeType":"YulIdentifier","src":"7503:6:30"}],"functionName":{"name":"mstore","nativeSrc":"7490:6:30","nodeType":"YulIdentifier","src":"7490:6:30"},"nativeSrc":"7490:20:30","nodeType":"YulFunctionCall","src":"7490:20:30"},"nativeSrc":"7490:20:30","nodeType":"YulExpressionStatement","src":"7490:20:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":3699,"isOffset":false,"isSlot":false,"src":"7401:4:30","valueSize":1},{"declaration":3699,"isOffset":false,"isSlot":false,"src":"7464:4:30","valueSize":1},{"declaration":3701,"isOffset":false,"isSlot":false,"src":"7439:4:30","valueSize":1},{"declaration":3701,"isOffset":false,"isSlot":false,"src":"7497:4:30","valueSize":1}],"id":3704,"nodeType":"InlineAssembly","src":"7358:162:30"}]},"documentation":{"id":3697,"nodeType":"StructuredDocumentation","src":"7210:77:30","text":" @dev Swaps the elements memory location `ptr1` and `ptr2`."},"id":3706,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"7301:5:30","nodeType":"FunctionDefinition","parameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3699,"mutability":"mutable","name":"ptr1","nameLocation":"7315:4:30","nodeType":"VariableDeclaration","scope":3706,"src":"7307:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3698,"name":"uint256","nodeType":"ElementaryTypeName","src":"7307:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3701,"mutability":"mutable","name":"ptr2","nameLocation":"7329:4:30","nodeType":"VariableDeclaration","scope":3706,"src":"7321:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3700,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7306:28:30"},"returnParameters":{"id":3703,"nodeType":"ParameterList","parameters":[],"src":"7348:0:30"},"scope":4370,"src":"7292:234:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3717,"nodeType":"Block","src":"7713:64:30","statements":[{"AST":{"nativeSrc":"7732:39:30","nodeType":"YulBlock","src":"7732:39:30","statements":[{"nativeSrc":"7746:15:30","nodeType":"YulAssignment","src":"7746:15:30","value":{"name":"input","nativeSrc":"7756:5:30","nodeType":"YulIdentifier","src":"7756:5:30"},"variableNames":[{"name":"output","nativeSrc":"7746:6:30","nodeType":"YulIdentifier","src":"7746:6:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3710,"isOffset":false,"isSlot":false,"src":"7756:5:30","valueSize":1},{"declaration":3714,"isOffset":false,"isSlot":false,"src":"7746:6:30","valueSize":1}],"id":3716,"nodeType":"InlineAssembly","src":"7723:48:30"}]},"documentation":{"id":3707,"nodeType":"StructuredDocumentation","src":"7532:76:30","text":"@dev Helper: low level cast address memory array to uint256 memory array"},"id":3718,"implemented":true,"kind":"function","modifiers":[],"name":"_castToUint256Array","nameLocation":"7622:19:30","nodeType":"FunctionDefinition","parameters":{"id":3711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3710,"mutability":"mutable","name":"input","nameLocation":"7659:5:30","nodeType":"VariableDeclaration","scope":3718,"src":"7642:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3708,"name":"address","nodeType":"ElementaryTypeName","src":"7642:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3709,"nodeType":"ArrayTypeName","src":"7642:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7641:24:30"},"returnParameters":{"id":3715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3714,"mutability":"mutable","name":"output","nameLocation":"7705:6:30","nodeType":"VariableDeclaration","scope":3718,"src":"7688:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3712,"name":"uint256","nodeType":"ElementaryTypeName","src":"7688:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3713,"nodeType":"ArrayTypeName","src":"7688:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7687:25:30"},"scope":4370,"src":"7613:164:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3729,"nodeType":"Block","src":"7964:64:30","statements":[{"AST":{"nativeSrc":"7983:39:30","nodeType":"YulBlock","src":"7983:39:30","statements":[{"nativeSrc":"7997:15:30","nodeType":"YulAssignment","src":"7997:15:30","value":{"name":"input","nativeSrc":"8007:5:30","nodeType":"YulIdentifier","src":"8007:5:30"},"variableNames":[{"name":"output","nativeSrc":"7997:6:30","nodeType":"YulIdentifier","src":"7997:6:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3722,"isOffset":false,"isSlot":false,"src":"8007:5:30","valueSize":1},{"declaration":3726,"isOffset":false,"isSlot":false,"src":"7997:6:30","valueSize":1}],"id":3728,"nodeType":"InlineAssembly","src":"7974:48:30"}]},"documentation":{"id":3719,"nodeType":"StructuredDocumentation","src":"7783:76:30","text":"@dev Helper: low level cast bytes32 memory array to uint256 memory array"},"id":3730,"implemented":true,"kind":"function","modifiers":[],"name":"_castToUint256Array","nameLocation":"7873:19:30","nodeType":"FunctionDefinition","parameters":{"id":3723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3722,"mutability":"mutable","name":"input","nameLocation":"7910:5:30","nodeType":"VariableDeclaration","scope":3730,"src":"7893:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7893:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3721,"nodeType":"ArrayTypeName","src":"7893:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7892:24:30"},"returnParameters":{"id":3727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3726,"mutability":"mutable","name":"output","nameLocation":"7956:6:30","nodeType":"VariableDeclaration","scope":3730,"src":"7939:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3724,"name":"uint256","nodeType":"ElementaryTypeName","src":"7939:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3725,"nodeType":"ArrayTypeName","src":"7939:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7938:25:30"},"scope":4370,"src":"7864:164:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3755,"nodeType":"Block","src":"8290:64:30","statements":[{"AST":{"nativeSrc":"8309:39:30","nodeType":"YulBlock","src":"8309:39:30","statements":[{"nativeSrc":"8323:15:30","nodeType":"YulAssignment","src":"8323:15:30","value":{"name":"input","nativeSrc":"8333:5:30","nodeType":"YulIdentifier","src":"8333:5:30"},"variableNames":[{"name":"output","nativeSrc":"8323:6:30","nodeType":"YulIdentifier","src":"8323:6:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3741,"isOffset":false,"isSlot":false,"src":"8333:5:30","valueSize":1},{"declaration":3752,"isOffset":false,"isSlot":false,"src":"8323:6:30","valueSize":1}],"id":3754,"nodeType":"InlineAssembly","src":"8300:48:30"}]},"documentation":{"id":3731,"nodeType":"StructuredDocumentation","src":"8034:78:30","text":"@dev Helper: low level cast address comp function to uint256 comp function"},"id":3756,"implemented":true,"kind":"function","modifiers":[],"name":"_castToUint256Comp","nameLocation":"8126:18:30","nodeType":"FunctionDefinition","parameters":{"id":3742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3741,"mutability":"mutable","name":"input","nameLocation":"8201:5:30","nodeType":"VariableDeclaration","scope":3756,"src":"8154:52:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":3740,"nodeType":"FunctionTypeName","parameterTypes":{"id":3736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3740,"src":"8163:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3732,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3735,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3740,"src":"8172:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3734,"name":"address","nodeType":"ElementaryTypeName","src":"8172:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8162:18:30"},"returnParameterTypes":{"id":3739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3740,"src":"8195:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3737,"name":"bool","nodeType":"ElementaryTypeName","src":"8195:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8194:6:30"},"src":"8154:52:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8144:68:30"},"returnParameters":{"id":3753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3752,"mutability":"mutable","name":"output","nameLocation":"8282:6:30","nodeType":"VariableDeclaration","scope":3756,"src":"8235:53:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":3751,"nodeType":"FunctionTypeName","parameterTypes":{"id":3747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3751,"src":"8244:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3743,"name":"uint256","nodeType":"ElementaryTypeName","src":"8244:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3751,"src":"8253:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8253:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8243:18:30"},"returnParameterTypes":{"id":3750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3751,"src":"8276:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3748,"name":"bool","nodeType":"ElementaryTypeName","src":"8276:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8275:6:30"},"src":"8235:53:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8234:55:30"},"scope":4370,"src":"8117:237:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3781,"nodeType":"Block","src":"8616:64:30","statements":[{"AST":{"nativeSrc":"8635:39:30","nodeType":"YulBlock","src":"8635:39:30","statements":[{"nativeSrc":"8649:15:30","nodeType":"YulAssignment","src":"8649:15:30","value":{"name":"input","nativeSrc":"8659:5:30","nodeType":"YulIdentifier","src":"8659:5:30"},"variableNames":[{"name":"output","nativeSrc":"8649:6:30","nodeType":"YulIdentifier","src":"8649:6:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3767,"isOffset":false,"isSlot":false,"src":"8659:5:30","valueSize":1},{"declaration":3778,"isOffset":false,"isSlot":false,"src":"8649:6:30","valueSize":1}],"id":3780,"nodeType":"InlineAssembly","src":"8626:48:30"}]},"documentation":{"id":3757,"nodeType":"StructuredDocumentation","src":"8360:78:30","text":"@dev Helper: low level cast bytes32 comp function to uint256 comp function"},"id":3782,"implemented":true,"kind":"function","modifiers":[],"name":"_castToUint256Comp","nameLocation":"8452:18:30","nodeType":"FunctionDefinition","parameters":{"id":3768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3767,"mutability":"mutable","name":"input","nameLocation":"8527:5:30","nodeType":"VariableDeclaration","scope":3782,"src":"8480:52:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":3766,"nodeType":"FunctionTypeName","parameterTypes":{"id":3762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3759,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3766,"src":"8489:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8489:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3766,"src":"8498:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8498:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8488:18:30"},"returnParameterTypes":{"id":3765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3766,"src":"8521:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3763,"name":"bool","nodeType":"ElementaryTypeName","src":"8521:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8520:6:30"},"src":"8480:52:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8470:68:30"},"returnParameters":{"id":3779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3778,"mutability":"mutable","name":"output","nameLocation":"8608:6:30","nodeType":"VariableDeclaration","scope":3782,"src":"8561:53:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":3777,"nodeType":"FunctionTypeName","parameterTypes":{"id":3773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3777,"src":"8570:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3769,"name":"uint256","nodeType":"ElementaryTypeName","src":"8570:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3777,"src":"8579:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3771,"name":"uint256","nodeType":"ElementaryTypeName","src":"8579:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8569:18:30"},"returnParameterTypes":{"id":3776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3777,"src":"8602:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3774,"name":"bool","nodeType":"ElementaryTypeName","src":"8602:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8601:6:30"},"src":"8561:53:30","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8560:55:30"},"scope":4370,"src":"8443:237:30","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3864,"nodeType":"Block","src":"9405:834:30","statements":[{"assignments":[3794],"declarations":[{"constant":false,"id":3794,"mutability":"mutable","name":"low","nameLocation":"9423:3:30","nodeType":"VariableDeclaration","scope":3864,"src":"9415:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3793,"name":"uint256","nodeType":"ElementaryTypeName","src":"9415:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3796,"initialValue":{"hexValue":"30","id":3795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9429:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9415:15:30"},{"assignments":[3798],"declarations":[{"constant":false,"id":3798,"mutability":"mutable","name":"high","nameLocation":"9448:4:30","nodeType":"VariableDeclaration","scope":3864,"src":"9440:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3797,"name":"uint256","nodeType":"ElementaryTypeName","src":"9440:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3801,"initialValue":{"expression":{"id":3799,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"9455:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9461:6:30","memberName":"length","nodeType":"MemberAccess","src":"9455:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9440:27:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3802,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"9482:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9490:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9482:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3808,"nodeType":"IfStatement","src":"9478:48:30","trueBody":{"id":3807,"nodeType":"Block","src":"9493:33:30","statements":[{"expression":{"hexValue":"30","id":3805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9514:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3792,"id":3806,"nodeType":"Return","src":"9507:8:30"}]}},{"body":{"id":3840,"nodeType":"Block","src":"9555:423:30","statements":[{"assignments":[3813],"declarations":[{"constant":false,"id":3813,"mutability":"mutable","name":"mid","nameLocation":"9577:3:30","nodeType":"VariableDeclaration","scope":3840,"src":"9569:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3812,"name":"uint256","nodeType":"ElementaryTypeName","src":"9569:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3819,"initialValue":{"arguments":[{"id":3816,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"9596:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3817,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"9601:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3814,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"9583:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9588:7:30","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":5362,"src":"9583:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9583:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9569:37:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3821,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"9844:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":3822,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"9851:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3820,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[4145,4171,4197,4223,4249],"referencedDeclaration":4197,"src":"9831:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$4668_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":3823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9831:24:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":3824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9856:5:30","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4667,"src":"9831:30:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3825,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"9864:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9831:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3838,"nodeType":"Block","src":"9922:46:30","statements":[{"expression":{"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3832,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"9940:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3833,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"9946:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9952:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9940:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3837,"nodeType":"ExpressionStatement","src":"9940:13:30"}]},"id":3839,"nodeType":"IfStatement","src":"9827:141:30","trueBody":{"id":3831,"nodeType":"Block","src":"9873:43:30","statements":[{"expression":{"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3827,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"9891:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3828,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"9898:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9891:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3830,"nodeType":"ExpressionStatement","src":"9891:10:30"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3809,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"9543:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3810,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3798,"src":"9549:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9543:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3841,"nodeType":"WhileStatement","src":"9536:442:30"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3842,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"10095:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10101:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10095:7:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3846,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3786,"src":"10119:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3847,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"10126:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10132:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10126:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3845,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[4145,4171,4197,4223,4249],"referencedDeclaration":4197,"src":"10106:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$4668_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10106:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":3851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10135:5:30","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4667,"src":"10106:34:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3852,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3788,"src":"10144:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10106:45:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10095:56:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3862,"nodeType":"Block","src":"10198:35:30","statements":[{"expression":{"id":3860,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"10219:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3792,"id":3861,"nodeType":"Return","src":"10212:10:30"}]},"id":3863,"nodeType":"IfStatement","src":"10091:142:30","trueBody":{"id":3859,"nodeType":"Block","src":"10153:39:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3855,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3794,"src":"10174:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10180:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10174:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3792,"id":3858,"nodeType":"Return","src":"10167:14:30"}]}}]},"documentation":{"id":3783,"nodeType":"StructuredDocumentation","src":"8686:616:30","text":" @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead."},"id":3865,"implemented":true,"kind":"function","modifiers":[],"name":"findUpperBound","nameLocation":"9316:14:30","nodeType":"FunctionDefinition","parameters":{"id":3789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3786,"mutability":"mutable","name":"array","nameLocation":"9349:5:30","nodeType":"VariableDeclaration","scope":3865,"src":"9331:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9331:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3785,"nodeType":"ArrayTypeName","src":"9331:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3788,"mutability":"mutable","name":"element","nameLocation":"9364:7:30","nodeType":"VariableDeclaration","scope":3865,"src":"9356:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3787,"name":"uint256","nodeType":"ElementaryTypeName","src":"9356:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9330:42:30"},"returnParameters":{"id":3792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3865,"src":"9396:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3790,"name":"uint256","nodeType":"ElementaryTypeName","src":"9396:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9395:9:30"},"scope":4370,"src":"9307:932:30","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3928,"nodeType":"Block","src":"10756:709:30","statements":[{"assignments":[3877],"declarations":[{"constant":false,"id":3877,"mutability":"mutable","name":"low","nameLocation":"10774:3:30","nodeType":"VariableDeclaration","scope":3928,"src":"10766:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3876,"name":"uint256","nodeType":"ElementaryTypeName","src":"10766:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3879,"initialValue":{"hexValue":"30","id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10780:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10766:15:30"},{"assignments":[3881],"declarations":[{"constant":false,"id":3881,"mutability":"mutable","name":"high","nameLocation":"10799:4:30","nodeType":"VariableDeclaration","scope":3928,"src":"10791:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3880,"name":"uint256","nodeType":"ElementaryTypeName","src":"10791:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3884,"initialValue":{"expression":{"id":3882,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"10806:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10812:6:30","memberName":"length","nodeType":"MemberAccess","src":"10806:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10791:27:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3885,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3881,"src":"10833:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10833:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3891,"nodeType":"IfStatement","src":"10829:48:30","trueBody":{"id":3890,"nodeType":"Block","src":"10844:33:30","statements":[{"expression":{"hexValue":"30","id":3888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10865:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3875,"id":3889,"nodeType":"Return","src":"10858:8:30"}]}},{"body":{"id":3924,"nodeType":"Block","src":"10906:532:30","statements":[{"assignments":[3896],"declarations":[{"constant":false,"id":3896,"mutability":"mutable","name":"mid","nameLocation":"10928:3:30","nodeType":"VariableDeclaration","scope":3924,"src":"10920:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3895,"name":"uint256","nodeType":"ElementaryTypeName","src":"10920:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3902,"initialValue":{"arguments":[{"id":3899,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3877,"src":"10947:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3900,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3881,"src":"10952:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3897,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"10934:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10939:7:30","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":5362,"src":"10934:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10934:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10920:37:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3904,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"11195:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":3905,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"11202:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3903,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[4145,4171,4197,4223,4249],"referencedDeclaration":4197,"src":"11182:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$4668_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11182:24:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":3907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11207:5:30","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4667,"src":"11182:30:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3908,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3871,"src":"11215:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11182:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3922,"nodeType":"Block","src":"11385:43:30","statements":[{"expression":{"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3918,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3881,"src":"11403:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3919,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"11410:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11403:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3921,"nodeType":"ExpressionStatement","src":"11403:10:30"}]},"id":3923,"nodeType":"IfStatement","src":"11178:250:30","trueBody":{"id":3917,"nodeType":"Block","src":"11224:155:30","statements":[{"id":3916,"nodeType":"UncheckedBlock","src":"11301:64:30","statements":[{"expression":{"id":3914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3910,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3877,"src":"11333:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3911,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"11339:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11345:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11339:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11333:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3915,"nodeType":"ExpressionStatement","src":"11333:13:30"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3892,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3877,"src":"10894:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3893,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3881,"src":"10900:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10894:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3925,"nodeType":"WhileStatement","src":"10887:551:30"},{"expression":{"id":3926,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3877,"src":"11455:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3875,"id":3927,"nodeType":"Return","src":"11448:10:30"}]},"documentation":{"id":3866,"nodeType":"StructuredDocumentation","src":"10245:412:30","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]."},"id":3929,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBound","nameLocation":"10671:10:30","nodeType":"FunctionDefinition","parameters":{"id":3872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"mutability":"mutable","name":"array","nameLocation":"10700:5:30","nodeType":"VariableDeclaration","scope":3929,"src":"10682:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"10682:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3868,"nodeType":"ArrayTypeName","src":"10682:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3871,"mutability":"mutable","name":"element","nameLocation":"10715:7:30","nodeType":"VariableDeclaration","scope":3929,"src":"10707:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10707:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10681:42:30"},"returnParameters":{"id":3875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3929,"src":"10747:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3873,"name":"uint256","nodeType":"ElementaryTypeName","src":"10747:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10746:9:30"},"scope":4370,"src":"10662:803:30","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3992,"nodeType":"Block","src":"11982:709:30","statements":[{"assignments":[3941],"declarations":[{"constant":false,"id":3941,"mutability":"mutable","name":"low","nameLocation":"12000:3:30","nodeType":"VariableDeclaration","scope":3992,"src":"11992:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3940,"name":"uint256","nodeType":"ElementaryTypeName","src":"11992:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3943,"initialValue":{"hexValue":"30","id":3942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12006:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11992:15:30"},{"assignments":[3945],"declarations":[{"constant":false,"id":3945,"mutability":"mutable","name":"high","nameLocation":"12025:4:30","nodeType":"VariableDeclaration","scope":3992,"src":"12017:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3944,"name":"uint256","nodeType":"ElementaryTypeName","src":"12017:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3948,"initialValue":{"expression":{"id":3946,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"12032:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12038:6:30","memberName":"length","nodeType":"MemberAccess","src":"12032:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12017:27:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3949,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"12059:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12067:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12059:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3955,"nodeType":"IfStatement","src":"12055:48:30","trueBody":{"id":3954,"nodeType":"Block","src":"12070:33:30","statements":[{"expression":{"hexValue":"30","id":3952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12091:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3939,"id":3953,"nodeType":"Return","src":"12084:8:30"}]}},{"body":{"id":3988,"nodeType":"Block","src":"12132:532:30","statements":[{"assignments":[3960],"declarations":[{"constant":false,"id":3960,"mutability":"mutable","name":"mid","nameLocation":"12154:3:30","nodeType":"VariableDeclaration","scope":3988,"src":"12146:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3959,"name":"uint256","nodeType":"ElementaryTypeName","src":"12146:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3966,"initialValue":{"arguments":[{"id":3963,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3941,"src":"12173:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3964,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"12178:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3961,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"12160:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12165:7:30","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":5362,"src":"12160:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12160:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12146:37:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3968,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"12421:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":3969,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"12428:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3967,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[4145,4171,4197,4223,4249],"referencedDeclaration":4197,"src":"12408:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$4668_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12408:24:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":3971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12433:5:30","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4667,"src":"12408:30:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3972,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3935,"src":"12441:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3986,"nodeType":"Block","src":"12499:155:30","statements":[{"id":3985,"nodeType":"UncheckedBlock","src":"12576:64:30","statements":[{"expression":{"id":3983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3979,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3941,"src":"12608:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3980,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"12614:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12614:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12608:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3984,"nodeType":"ExpressionStatement","src":"12608:13:30"}]}]},"id":3987,"nodeType":"IfStatement","src":"12404:250:30","trueBody":{"id":3978,"nodeType":"Block","src":"12450:43:30","statements":[{"expression":{"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3974,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"12468:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3975,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"12475:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12468:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3977,"nodeType":"ExpressionStatement","src":"12468:10:30"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3956,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3941,"src":"12120:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3957,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"12126:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12120:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3989,"nodeType":"WhileStatement","src":"12113:551:30"},{"expression":{"id":3990,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3941,"src":"12681:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3939,"id":3991,"nodeType":"Return","src":"12674:10:30"}]},"documentation":{"id":3930,"nodeType":"StructuredDocumentation","src":"11471:412:30","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]."},"id":3993,"implemented":true,"kind":"function","modifiers":[],"name":"upperBound","nameLocation":"11897:10:30","nodeType":"FunctionDefinition","parameters":{"id":3936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3933,"mutability":"mutable","name":"array","nameLocation":"11926:5:30","nodeType":"VariableDeclaration","scope":3993,"src":"11908:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3931,"name":"uint256","nodeType":"ElementaryTypeName","src":"11908:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3932,"nodeType":"ArrayTypeName","src":"11908:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3935,"mutability":"mutable","name":"element","nameLocation":"11941:7:30","nodeType":"VariableDeclaration","scope":3993,"src":"11933:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3934,"name":"uint256","nodeType":"ElementaryTypeName","src":"11933:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11907:42:30"},"returnParameters":{"id":3939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3993,"src":"11973:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3937,"name":"uint256","nodeType":"ElementaryTypeName","src":"11973:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11972:9:30"},"scope":4370,"src":"11888:803:30","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4055,"nodeType":"Block","src":"12875:709:30","statements":[{"assignments":[4005],"declarations":[{"constant":false,"id":4005,"mutability":"mutable","name":"low","nameLocation":"12893:3:30","nodeType":"VariableDeclaration","scope":4055,"src":"12885:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4004,"name":"uint256","nodeType":"ElementaryTypeName","src":"12885:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4007,"initialValue":{"hexValue":"30","id":4006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12899:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12885:15:30"},{"assignments":[4009],"declarations":[{"constant":false,"id":4009,"mutability":"mutable","name":"high","nameLocation":"12918:4:30","nodeType":"VariableDeclaration","scope":4055,"src":"12910:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4008,"name":"uint256","nodeType":"ElementaryTypeName","src":"12910:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4012,"initialValue":{"expression":{"id":4010,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3997,"src":"12925:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12931:6:30","memberName":"length","nodeType":"MemberAccess","src":"12925:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12910:27:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4013,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"12952:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12960:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12952:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4019,"nodeType":"IfStatement","src":"12948:48:30","trueBody":{"id":4018,"nodeType":"Block","src":"12963:33:30","statements":[{"expression":{"hexValue":"30","id":4016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12984:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4003,"id":4017,"nodeType":"Return","src":"12977:8:30"}]}},{"body":{"id":4051,"nodeType":"Block","src":"13025:532:30","statements":[{"assignments":[4024],"declarations":[{"constant":false,"id":4024,"mutability":"mutable","name":"mid","nameLocation":"13047:3:30","nodeType":"VariableDeclaration","scope":4051,"src":"13039:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4023,"name":"uint256","nodeType":"ElementaryTypeName","src":"13039:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4030,"initialValue":{"arguments":[{"id":4027,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"13066:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4028,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"13071:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4025,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"13053:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13058:7:30","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":5362,"src":"13053:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13053:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13039:37:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4032,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3997,"src":"13320:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":4033,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"13327:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4031,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[4262,4275,4288,4301,4314],"referencedDeclaration":4288,"src":"13301:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13301:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4035,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"13334:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13301:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4049,"nodeType":"Block","src":"13504:43:30","statements":[{"expression":{"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4045,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"13522:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4046,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"13529:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13522:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4048,"nodeType":"ExpressionStatement","src":"13522:10:30"}]},"id":4050,"nodeType":"IfStatement","src":"13297:250:30","trueBody":{"id":4044,"nodeType":"Block","src":"13343:155:30","statements":[{"id":4043,"nodeType":"UncheckedBlock","src":"13420:64:30","statements":[{"expression":{"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4037,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"13452:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4038,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"13458:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13464:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13458:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13452:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4042,"nodeType":"ExpressionStatement","src":"13452:13:30"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4020,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"13013:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4021,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"13019:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13013:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4052,"nodeType":"WhileStatement","src":"13006:551:30"},{"expression":{"id":4053,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"13574:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4003,"id":4054,"nodeType":"Return","src":"13567:10:30"}]},"documentation":{"id":3994,"nodeType":"StructuredDocumentation","src":"12697:74:30","text":" @dev Same as {lowerBound}, but with an array in memory."},"id":4056,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBoundMemory","nameLocation":"12785:16:30","nodeType":"FunctionDefinition","parameters":{"id":4000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3997,"mutability":"mutable","name":"array","nameLocation":"12819:5:30","nodeType":"VariableDeclaration","scope":4056,"src":"12802:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3995,"name":"uint256","nodeType":"ElementaryTypeName","src":"12802:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3996,"nodeType":"ArrayTypeName","src":"12802:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":3999,"mutability":"mutable","name":"element","nameLocation":"12834:7:30","nodeType":"VariableDeclaration","scope":4056,"src":"12826:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3998,"name":"uint256","nodeType":"ElementaryTypeName","src":"12826:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12801:41:30"},"returnParameters":{"id":4003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4056,"src":"12866:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4001,"name":"uint256","nodeType":"ElementaryTypeName","src":"12866:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12865:9:30"},"scope":4370,"src":"12776:808:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4118,"nodeType":"Block","src":"13768:709:30","statements":[{"assignments":[4068],"declarations":[{"constant":false,"id":4068,"mutability":"mutable","name":"low","nameLocation":"13786:3:30","nodeType":"VariableDeclaration","scope":4118,"src":"13778:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4067,"name":"uint256","nodeType":"ElementaryTypeName","src":"13778:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4070,"initialValue":{"hexValue":"30","id":4069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13792:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13778:15:30"},{"assignments":[4072],"declarations":[{"constant":false,"id":4072,"mutability":"mutable","name":"high","nameLocation":"13811:4:30","nodeType":"VariableDeclaration","scope":4118,"src":"13803:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4071,"name":"uint256","nodeType":"ElementaryTypeName","src":"13803:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4075,"initialValue":{"expression":{"id":4073,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"13818:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13824:6:30","memberName":"length","nodeType":"MemberAccess","src":"13818:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13803:27:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4076,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"13845:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13853:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13845:9:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4082,"nodeType":"IfStatement","src":"13841:48:30","trueBody":{"id":4081,"nodeType":"Block","src":"13856:33:30","statements":[{"expression":{"hexValue":"30","id":4079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13877:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4066,"id":4080,"nodeType":"Return","src":"13870:8:30"}]}},{"body":{"id":4114,"nodeType":"Block","src":"13918:532:30","statements":[{"assignments":[4087],"declarations":[{"constant":false,"id":4087,"mutability":"mutable","name":"mid","nameLocation":"13940:3:30","nodeType":"VariableDeclaration","scope":4114,"src":"13932:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4086,"name":"uint256","nodeType":"ElementaryTypeName","src":"13932:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4093,"initialValue":{"arguments":[{"id":4090,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4068,"src":"13959:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4091,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"13964:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4088,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"13946:4:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13951:7:30","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":5362,"src":"13946:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13946:23:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13932:37:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4095,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"14213:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":4096,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4087,"src":"14220:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4094,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[4262,4275,4288,4301,4314],"referencedDeclaration":4288,"src":"14194:18:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14194:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4098,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"14227:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14194:40:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4112,"nodeType":"Block","src":"14285:155:30","statements":[{"id":4111,"nodeType":"UncheckedBlock","src":"14362:64:30","statements":[{"expression":{"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4105,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4068,"src":"14394:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4106,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4087,"src":"14400:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14406:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14400:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14394:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4110,"nodeType":"ExpressionStatement","src":"14394:13:30"}]}]},"id":4113,"nodeType":"IfStatement","src":"14190:250:30","trueBody":{"id":4104,"nodeType":"Block","src":"14236:43:30","statements":[{"expression":{"id":4102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4100,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"14254:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4101,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4087,"src":"14261:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14254:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4103,"nodeType":"ExpressionStatement","src":"14254:10:30"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4083,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4068,"src":"13906:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4084,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"13912:4:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13906:10:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4115,"nodeType":"WhileStatement","src":"13899:551:30"},{"expression":{"id":4116,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4068,"src":"14467:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4066,"id":4117,"nodeType":"Return","src":"14460:10:30"}]},"documentation":{"id":4057,"nodeType":"StructuredDocumentation","src":"13590:74:30","text":" @dev Same as {upperBound}, but with an array in memory."},"id":4119,"implemented":true,"kind":"function","modifiers":[],"name":"upperBoundMemory","nameLocation":"13678:16:30","nodeType":"FunctionDefinition","parameters":{"id":4063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4060,"mutability":"mutable","name":"array","nameLocation":"13712:5:30","nodeType":"VariableDeclaration","scope":4119,"src":"13695:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4058,"name":"uint256","nodeType":"ElementaryTypeName","src":"13695:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4059,"nodeType":"ArrayTypeName","src":"13695:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4062,"mutability":"mutable","name":"element","nameLocation":"13727:7:30","nodeType":"VariableDeclaration","scope":4119,"src":"13719:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4061,"name":"uint256","nodeType":"ElementaryTypeName","src":"13719:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13694:41:30"},"returnParameters":{"id":4066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4119,"src":"13759:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4064,"name":"uint256","nodeType":"ElementaryTypeName","src":"13759:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13758:9:30"},"scope":4370,"src":"13669:808:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4144,"nodeType":"Block","src":"14793:167:30","statements":[{"assignments":[4132],"declarations":[{"constant":false,"id":4132,"mutability":"mutable","name":"slot","nameLocation":"14811:4:30","nodeType":"VariableDeclaration","scope":4144,"src":"14803:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14803:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4133,"nodeType":"VariableDeclarationStatement","src":"14803:12:30"},{"AST":{"nativeSrc":"14850:40:30","nodeType":"YulBlock","src":"14850:40:30","statements":[{"nativeSrc":"14864:16:30","nodeType":"YulAssignment","src":"14864:16:30","value":{"name":"arr.slot","nativeSrc":"14872:8:30","nodeType":"YulIdentifier","src":"14872:8:30"},"variableNames":[{"name":"slot","nativeSrc":"14864:4:30","nodeType":"YulIdentifier","src":"14864:4:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4123,"isOffset":false,"isSlot":true,"src":"14872:8:30","suffix":"slot","valueSize":1},{"declaration":4132,"isOffset":false,"isSlot":false,"src":"14864:4:30","valueSize":1}],"flags":["memory-safe"],"id":4134,"nodeType":"InlineAssembly","src":"14825:65:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4139,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4125,"src":"14932:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4135,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"14906:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14911:11:30","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":4568,"src":"14906:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14906:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14925:6:30","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":4558,"src":"14906:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14906:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14937:14:30","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":4688,"src":"14906:45:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4659_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":4142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14906:47:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$4659_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"functionReturnParameters":4130,"id":4143,"nodeType":"Return","src":"14899:54:30"}]},"documentation":{"id":4120,"nodeType":"StructuredDocumentation","src":"14483:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4145,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14688:12:30","nodeType":"FunctionDefinition","parameters":{"id":4126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4123,"mutability":"mutable","name":"arr","nameLocation":"14719:3:30","nodeType":"VariableDeclaration","scope":4145,"src":"14701:21:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4121,"name":"address","nodeType":"ElementaryTypeName","src":"14701:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4122,"nodeType":"ArrayTypeName","src":"14701:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":4125,"mutability":"mutable","name":"pos","nameLocation":"14732:3:30","nodeType":"VariableDeclaration","scope":4145,"src":"14724:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4124,"name":"uint256","nodeType":"ElementaryTypeName","src":"14724:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14700:36:30"},"returnParameters":{"id":4130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4145,"src":"14760:31:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$4659_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":4128,"nodeType":"UserDefinedTypeName","pathNode":{"id":4127,"name":"StorageSlot.AddressSlot","nameLocations":["14760:11:30","14772:11:30"],"nodeType":"IdentifierPath","referencedDeclaration":4659,"src":"14760:23:30"},"referencedDeclaration":4659,"src":"14760:23:30","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$4659_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"14759:33:30"},"scope":4370,"src":"14679:281:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4170,"nodeType":"Block","src":"15276:167:30","statements":[{"assignments":[4158],"declarations":[{"constant":false,"id":4158,"mutability":"mutable","name":"slot","nameLocation":"15294:4:30","nodeType":"VariableDeclaration","scope":4170,"src":"15286:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15286:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4159,"nodeType":"VariableDeclarationStatement","src":"15286:12:30"},{"AST":{"nativeSrc":"15333:40:30","nodeType":"YulBlock","src":"15333:40:30","statements":[{"nativeSrc":"15347:16:30","nodeType":"YulAssignment","src":"15347:16:30","value":{"name":"arr.slot","nativeSrc":"15355:8:30","nodeType":"YulIdentifier","src":"15355:8:30"},"variableNames":[{"name":"slot","nativeSrc":"15347:4:30","nodeType":"YulIdentifier","src":"15347:4:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4149,"isOffset":false,"isSlot":true,"src":"15355:8:30","suffix":"slot","valueSize":1},{"declaration":4158,"isOffset":false,"isSlot":false,"src":"15347:4:30","valueSize":1}],"flags":["memory-safe"],"id":4160,"nodeType":"InlineAssembly","src":"15308:65:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4165,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4151,"src":"15415:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4161,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4158,"src":"15389:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15394:11:30","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":4568,"src":"15389:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15389:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15408:6:30","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":4558,"src":"15389:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15389:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15420:14:30","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":4710,"src":"15389:45:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$4665_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15389:47:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"functionReturnParameters":4156,"id":4169,"nodeType":"Return","src":"15382:54:30"}]},"documentation":{"id":4146,"nodeType":"StructuredDocumentation","src":"14966:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4171,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"15171:12:30","nodeType":"FunctionDefinition","parameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4149,"mutability":"mutable","name":"arr","nameLocation":"15202:3:30","nodeType":"VariableDeclaration","scope":4171,"src":"15184:21:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15184:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4148,"nodeType":"ArrayTypeName","src":"15184:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":4151,"mutability":"mutable","name":"pos","nameLocation":"15215:3:30","nodeType":"VariableDeclaration","scope":4171,"src":"15207:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4150,"name":"uint256","nodeType":"ElementaryTypeName","src":"15207:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15183:36:30"},"returnParameters":{"id":4156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4171,"src":"15243:31:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":4154,"nodeType":"UserDefinedTypeName","pathNode":{"id":4153,"name":"StorageSlot.Bytes32Slot","nameLocations":["15243:11:30","15255:11:30"],"nodeType":"IdentifierPath","referencedDeclaration":4665,"src":"15243:23:30"},"referencedDeclaration":4665,"src":"15243:23:30","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"15242:33:30"},"scope":4370,"src":"15162:281:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4196,"nodeType":"Block","src":"15759:167:30","statements":[{"assignments":[4184],"declarations":[{"constant":false,"id":4184,"mutability":"mutable","name":"slot","nameLocation":"15777:4:30","nodeType":"VariableDeclaration","scope":4196,"src":"15769:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15769:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4185,"nodeType":"VariableDeclarationStatement","src":"15769:12:30"},{"AST":{"nativeSrc":"15816:40:30","nodeType":"YulBlock","src":"15816:40:30","statements":[{"nativeSrc":"15830:16:30","nodeType":"YulAssignment","src":"15830:16:30","value":{"name":"arr.slot","nativeSrc":"15838:8:30","nodeType":"YulIdentifier","src":"15838:8:30"},"variableNames":[{"name":"slot","nativeSrc":"15830:4:30","nodeType":"YulIdentifier","src":"15830:4:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4175,"isOffset":false,"isSlot":true,"src":"15838:8:30","suffix":"slot","valueSize":1},{"declaration":4184,"isOffset":false,"isSlot":false,"src":"15830:4:30","valueSize":1}],"flags":["memory-safe"],"id":4186,"nodeType":"InlineAssembly","src":"15791:65:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4191,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4177,"src":"15898:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4187,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4184,"src":"15872:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15877:11:30","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":4568,"src":"15872:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15872:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15891:6:30","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":4558,"src":"15872:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15872:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15903:14:30","memberName":"getUint256Slot","nodeType":"MemberAccess","referencedDeclaration":4721,"src":"15872:45:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$4668_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":4194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15872:47:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"functionReturnParameters":4182,"id":4195,"nodeType":"Return","src":"15865:54:30"}]},"documentation":{"id":4172,"nodeType":"StructuredDocumentation","src":"15449:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4197,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"15654:12:30","nodeType":"FunctionDefinition","parameters":{"id":4178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4175,"mutability":"mutable","name":"arr","nameLocation":"15685:3:30","nodeType":"VariableDeclaration","scope":4197,"src":"15667:21:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4173,"name":"uint256","nodeType":"ElementaryTypeName","src":"15667:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4174,"nodeType":"ArrayTypeName","src":"15667:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4177,"mutability":"mutable","name":"pos","nameLocation":"15698:3:30","nodeType":"VariableDeclaration","scope":4197,"src":"15690:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4176,"name":"uint256","nodeType":"ElementaryTypeName","src":"15690:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15666:36:30"},"returnParameters":{"id":4182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4197,"src":"15726:31:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":4180,"nodeType":"UserDefinedTypeName","pathNode":{"id":4179,"name":"StorageSlot.Uint256Slot","nameLocations":["15726:11:30","15738:11:30"],"nodeType":"IdentifierPath","referencedDeclaration":4668,"src":"15726:23:30"},"referencedDeclaration":4668,"src":"15726:23:30","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"15725:33:30"},"scope":4370,"src":"15645:281:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4222,"nodeType":"Block","src":"16238:165:30","statements":[{"assignments":[4210],"declarations":[{"constant":false,"id":4210,"mutability":"mutable","name":"slot","nameLocation":"16256:4:30","nodeType":"VariableDeclaration","scope":4222,"src":"16248:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16248:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4211,"nodeType":"VariableDeclarationStatement","src":"16248:12:30"},{"AST":{"nativeSrc":"16295:40:30","nodeType":"YulBlock","src":"16295:40:30","statements":[{"nativeSrc":"16309:16:30","nodeType":"YulAssignment","src":"16309:16:30","value":{"name":"arr.slot","nativeSrc":"16317:8:30","nodeType":"YulIdentifier","src":"16317:8:30"},"variableNames":[{"name":"slot","nativeSrc":"16309:4:30","nodeType":"YulIdentifier","src":"16309:4:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4201,"isOffset":false,"isSlot":true,"src":"16317:8:30","suffix":"slot","valueSize":1},{"declaration":4210,"isOffset":false,"isSlot":false,"src":"16309:4:30","valueSize":1}],"flags":["memory-safe"],"id":4212,"nodeType":"InlineAssembly","src":"16270:65:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4217,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"16377:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4213,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4210,"src":"16351:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16356:11:30","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":4568,"src":"16351:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16351:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16370:6:30","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":4558,"src":"16351:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16351:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16382:12:30","memberName":"getBytesSlot","nodeType":"MemberAccess","referencedDeclaration":4765,"src":"16351:43:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BytesSlot_$4677_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BytesSlot storage pointer)"}},"id":4220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16351:45:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot storage pointer"}},"functionReturnParameters":4208,"id":4221,"nodeType":"Return","src":"16344:52:30"}]},"documentation":{"id":4198,"nodeType":"StructuredDocumentation","src":"15932:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4223,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"16137:12:30","nodeType":"FunctionDefinition","parameters":{"id":4204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4201,"mutability":"mutable","name":"arr","nameLocation":"16166:3:30","nodeType":"VariableDeclaration","scope":4223,"src":"16150:19:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4199,"name":"bytes","nodeType":"ElementaryTypeName","src":"16150:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4200,"nodeType":"ArrayTypeName","src":"16150:7:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4203,"mutability":"mutable","name":"pos","nameLocation":"16179:3:30","nodeType":"VariableDeclaration","scope":4223,"src":"16171:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4202,"name":"uint256","nodeType":"ElementaryTypeName","src":"16171:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16149:34:30"},"returnParameters":{"id":4208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4223,"src":"16207:29:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":4206,"nodeType":"UserDefinedTypeName","pathNode":{"id":4205,"name":"StorageSlot.BytesSlot","nameLocations":["16207:11:30","16219:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":4677,"src":"16207:21:30"},"referencedDeclaration":4677,"src":"16207:21:30","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"16206:31:30"},"scope":4370,"src":"16128:275:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4248,"nodeType":"Block","src":"16717:166:30","statements":[{"assignments":[4236],"declarations":[{"constant":false,"id":4236,"mutability":"mutable","name":"slot","nameLocation":"16735:4:30","nodeType":"VariableDeclaration","scope":4248,"src":"16727:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16727:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4237,"nodeType":"VariableDeclarationStatement","src":"16727:12:30"},{"AST":{"nativeSrc":"16774:40:30","nodeType":"YulBlock","src":"16774:40:30","statements":[{"nativeSrc":"16788:16:30","nodeType":"YulAssignment","src":"16788:16:30","value":{"name":"arr.slot","nativeSrc":"16796:8:30","nodeType":"YulIdentifier","src":"16796:8:30"},"variableNames":[{"name":"slot","nativeSrc":"16788:4:30","nodeType":"YulIdentifier","src":"16788:4:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4227,"isOffset":false,"isSlot":true,"src":"16796:8:30","suffix":"slot","valueSize":1},{"declaration":4236,"isOffset":false,"isSlot":false,"src":"16788:4:30","valueSize":1}],"flags":["memory-safe"],"id":4238,"nodeType":"InlineAssembly","src":"16749:65:30"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4243,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"16856:3:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4239,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"16830:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16835:11:30","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":4568,"src":"16830:16:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16830:18:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16849:6:30","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":4558,"src":"16830:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":4244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16830:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16861:13:30","memberName":"getStringSlot","nodeType":"MemberAccess","referencedDeclaration":4743,"src":"16830:44:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_StringSlot_$4674_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.StringSlot storage pointer)"}},"id":4246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16830:46:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot storage pointer"}},"functionReturnParameters":4234,"id":4247,"nodeType":"Return","src":"16823:53:30"}]},"documentation":{"id":4224,"nodeType":"StructuredDocumentation","src":"16409:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4249,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"16614:12:30","nodeType":"FunctionDefinition","parameters":{"id":4230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4227,"mutability":"mutable","name":"arr","nameLocation":"16644:3:30","nodeType":"VariableDeclaration","scope":4249,"src":"16627:20:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":4225,"name":"string","nodeType":"ElementaryTypeName","src":"16627:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":4226,"nodeType":"ArrayTypeName","src":"16627:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":4229,"mutability":"mutable","name":"pos","nameLocation":"16657:3:30","nodeType":"VariableDeclaration","scope":4249,"src":"16649:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4228,"name":"uint256","nodeType":"ElementaryTypeName","src":"16649:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16626:35:30"},"returnParameters":{"id":4234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4249,"src":"16685:30:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":4232,"nodeType":"UserDefinedTypeName","pathNode":{"id":4231,"name":"StorageSlot.StringSlot","nameLocations":["16685:11:30","16697:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":4674,"src":"16685:22:30"},"referencedDeclaration":4674,"src":"16685:22:30","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"16684:32:30"},"scope":4370,"src":"16605:278:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4261,"nodeType":"Block","src":"17184:98:30","statements":[{"AST":{"nativeSrc":"17203:73:30","nodeType":"YulBlock","src":"17203:73:30","statements":[{"nativeSrc":"17217:49:30","nodeType":"YulAssignment","src":"17217:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"17238:3:30","nodeType":"YulIdentifier","src":"17238:3:30"},{"kind":"number","nativeSrc":"17243:4:30","nodeType":"YulLiteral","src":"17243:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17234:3:30","nodeType":"YulIdentifier","src":"17234:3:30"},"nativeSrc":"17234:14:30","nodeType":"YulFunctionCall","src":"17234:14:30"},{"arguments":[{"name":"pos","nativeSrc":"17254:3:30","nodeType":"YulIdentifier","src":"17254:3:30"},{"kind":"number","nativeSrc":"17259:4:30","nodeType":"YulLiteral","src":"17259:4:30","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"17250:3:30","nodeType":"YulIdentifier","src":"17250:3:30"},"nativeSrc":"17250:14:30","nodeType":"YulFunctionCall","src":"17250:14:30"}],"functionName":{"name":"add","nativeSrc":"17230:3:30","nodeType":"YulIdentifier","src":"17230:3:30"},"nativeSrc":"17230:35:30","nodeType":"YulFunctionCall","src":"17230:35:30"}],"functionName":{"name":"mload","nativeSrc":"17224:5:30","nodeType":"YulIdentifier","src":"17224:5:30"},"nativeSrc":"17224:42:30","nodeType":"YulFunctionCall","src":"17224:42:30"},"variableNames":[{"name":"res","nativeSrc":"17217:3:30","nodeType":"YulIdentifier","src":"17217:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4253,"isOffset":false,"isSlot":false,"src":"17238:3:30","valueSize":1},{"declaration":4255,"isOffset":false,"isSlot":false,"src":"17254:3:30","valueSize":1},{"declaration":4258,"isOffset":false,"isSlot":false,"src":"17217:3:30","valueSize":1}],"id":4260,"nodeType":"InlineAssembly","src":"17194:82:30"}]},"documentation":{"id":4250,"nodeType":"StructuredDocumentation","src":"16889:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4262,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"17094:18:30","nodeType":"FunctionDefinition","parameters":{"id":4256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4253,"mutability":"mutable","name":"arr","nameLocation":"17130:3:30","nodeType":"VariableDeclaration","scope":4262,"src":"17113:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4251,"name":"address","nodeType":"ElementaryTypeName","src":"17113:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4252,"nodeType":"ArrayTypeName","src":"17113:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":4255,"mutability":"mutable","name":"pos","nameLocation":"17143:3:30","nodeType":"VariableDeclaration","scope":4262,"src":"17135:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4254,"name":"uint256","nodeType":"ElementaryTypeName","src":"17135:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17112:35:30"},"returnParameters":{"id":4259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4258,"mutability":"mutable","name":"res","nameLocation":"17179:3:30","nodeType":"VariableDeclaration","scope":4262,"src":"17171:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4257,"name":"address","nodeType":"ElementaryTypeName","src":"17171:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17170:13:30"},"scope":4370,"src":"17085:197:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4274,"nodeType":"Block","src":"17583:98:30","statements":[{"AST":{"nativeSrc":"17602:73:30","nodeType":"YulBlock","src":"17602:73:30","statements":[{"nativeSrc":"17616:49:30","nodeType":"YulAssignment","src":"17616:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"17637:3:30","nodeType":"YulIdentifier","src":"17637:3:30"},{"kind":"number","nativeSrc":"17642:4:30","nodeType":"YulLiteral","src":"17642:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17633:3:30","nodeType":"YulIdentifier","src":"17633:3:30"},"nativeSrc":"17633:14:30","nodeType":"YulFunctionCall","src":"17633:14:30"},{"arguments":[{"name":"pos","nativeSrc":"17653:3:30","nodeType":"YulIdentifier","src":"17653:3:30"},{"kind":"number","nativeSrc":"17658:4:30","nodeType":"YulLiteral","src":"17658:4:30","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"17649:3:30","nodeType":"YulIdentifier","src":"17649:3:30"},"nativeSrc":"17649:14:30","nodeType":"YulFunctionCall","src":"17649:14:30"}],"functionName":{"name":"add","nativeSrc":"17629:3:30","nodeType":"YulIdentifier","src":"17629:3:30"},"nativeSrc":"17629:35:30","nodeType":"YulFunctionCall","src":"17629:35:30"}],"functionName":{"name":"mload","nativeSrc":"17623:5:30","nodeType":"YulIdentifier","src":"17623:5:30"},"nativeSrc":"17623:42:30","nodeType":"YulFunctionCall","src":"17623:42:30"},"variableNames":[{"name":"res","nativeSrc":"17616:3:30","nodeType":"YulIdentifier","src":"17616:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4266,"isOffset":false,"isSlot":false,"src":"17637:3:30","valueSize":1},{"declaration":4268,"isOffset":false,"isSlot":false,"src":"17653:3:30","valueSize":1},{"declaration":4271,"isOffset":false,"isSlot":false,"src":"17616:3:30","valueSize":1}],"id":4273,"nodeType":"InlineAssembly","src":"17593:82:30"}]},"documentation":{"id":4263,"nodeType":"StructuredDocumentation","src":"17288:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4275,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"17493:18:30","nodeType":"FunctionDefinition","parameters":{"id":4269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4266,"mutability":"mutable","name":"arr","nameLocation":"17529:3:30","nodeType":"VariableDeclaration","scope":4275,"src":"17512:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17512:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4265,"nodeType":"ArrayTypeName","src":"17512:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":4268,"mutability":"mutable","name":"pos","nameLocation":"17542:3:30","nodeType":"VariableDeclaration","scope":4275,"src":"17534:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4267,"name":"uint256","nodeType":"ElementaryTypeName","src":"17534:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17511:35:30"},"returnParameters":{"id":4272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4271,"mutability":"mutable","name":"res","nameLocation":"17578:3:30","nodeType":"VariableDeclaration","scope":4275,"src":"17570:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17570:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17569:13:30"},"scope":4370,"src":"17484:197:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4287,"nodeType":"Block","src":"17982:98:30","statements":[{"AST":{"nativeSrc":"18001:73:30","nodeType":"YulBlock","src":"18001:73:30","statements":[{"nativeSrc":"18015:49:30","nodeType":"YulAssignment","src":"18015:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"18036:3:30","nodeType":"YulIdentifier","src":"18036:3:30"},{"kind":"number","nativeSrc":"18041:4:30","nodeType":"YulLiteral","src":"18041:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18032:3:30","nodeType":"YulIdentifier","src":"18032:3:30"},"nativeSrc":"18032:14:30","nodeType":"YulFunctionCall","src":"18032:14:30"},{"arguments":[{"name":"pos","nativeSrc":"18052:3:30","nodeType":"YulIdentifier","src":"18052:3:30"},{"kind":"number","nativeSrc":"18057:4:30","nodeType":"YulLiteral","src":"18057:4:30","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"18048:3:30","nodeType":"YulIdentifier","src":"18048:3:30"},"nativeSrc":"18048:14:30","nodeType":"YulFunctionCall","src":"18048:14:30"}],"functionName":{"name":"add","nativeSrc":"18028:3:30","nodeType":"YulIdentifier","src":"18028:3:30"},"nativeSrc":"18028:35:30","nodeType":"YulFunctionCall","src":"18028:35:30"}],"functionName":{"name":"mload","nativeSrc":"18022:5:30","nodeType":"YulIdentifier","src":"18022:5:30"},"nativeSrc":"18022:42:30","nodeType":"YulFunctionCall","src":"18022:42:30"},"variableNames":[{"name":"res","nativeSrc":"18015:3:30","nodeType":"YulIdentifier","src":"18015:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4279,"isOffset":false,"isSlot":false,"src":"18036:3:30","valueSize":1},{"declaration":4281,"isOffset":false,"isSlot":false,"src":"18052:3:30","valueSize":1},{"declaration":4284,"isOffset":false,"isSlot":false,"src":"18015:3:30","valueSize":1}],"id":4286,"nodeType":"InlineAssembly","src":"17992:82:30"}]},"documentation":{"id":4276,"nodeType":"StructuredDocumentation","src":"17687:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4288,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"17892:18:30","nodeType":"FunctionDefinition","parameters":{"id":4282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"arr","nameLocation":"17928:3:30","nodeType":"VariableDeclaration","scope":4288,"src":"17911:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4277,"name":"uint256","nodeType":"ElementaryTypeName","src":"17911:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4278,"nodeType":"ArrayTypeName","src":"17911:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4281,"mutability":"mutable","name":"pos","nameLocation":"17941:3:30","nodeType":"VariableDeclaration","scope":4288,"src":"17933:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4280,"name":"uint256","nodeType":"ElementaryTypeName","src":"17933:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17910:35:30"},"returnParameters":{"id":4285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4284,"mutability":"mutable","name":"res","nameLocation":"17977:3:30","nodeType":"VariableDeclaration","scope":4288,"src":"17969:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4283,"name":"uint256","nodeType":"ElementaryTypeName","src":"17969:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17968:13:30"},"scope":4370,"src":"17883:197:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4300,"nodeType":"Block","src":"18384:98:30","statements":[{"AST":{"nativeSrc":"18403:73:30","nodeType":"YulBlock","src":"18403:73:30","statements":[{"nativeSrc":"18417:49:30","nodeType":"YulAssignment","src":"18417:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"18438:3:30","nodeType":"YulIdentifier","src":"18438:3:30"},{"kind":"number","nativeSrc":"18443:4:30","nodeType":"YulLiteral","src":"18443:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18434:3:30","nodeType":"YulIdentifier","src":"18434:3:30"},"nativeSrc":"18434:14:30","nodeType":"YulFunctionCall","src":"18434:14:30"},{"arguments":[{"name":"pos","nativeSrc":"18454:3:30","nodeType":"YulIdentifier","src":"18454:3:30"},{"kind":"number","nativeSrc":"18459:4:30","nodeType":"YulLiteral","src":"18459:4:30","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"18450:3:30","nodeType":"YulIdentifier","src":"18450:3:30"},"nativeSrc":"18450:14:30","nodeType":"YulFunctionCall","src":"18450:14:30"}],"functionName":{"name":"add","nativeSrc":"18430:3:30","nodeType":"YulIdentifier","src":"18430:3:30"},"nativeSrc":"18430:35:30","nodeType":"YulFunctionCall","src":"18430:35:30"}],"functionName":{"name":"mload","nativeSrc":"18424:5:30","nodeType":"YulIdentifier","src":"18424:5:30"},"nativeSrc":"18424:42:30","nodeType":"YulFunctionCall","src":"18424:42:30"},"variableNames":[{"name":"res","nativeSrc":"18417:3:30","nodeType":"YulIdentifier","src":"18417:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4292,"isOffset":false,"isSlot":false,"src":"18438:3:30","valueSize":1},{"declaration":4294,"isOffset":false,"isSlot":false,"src":"18454:3:30","valueSize":1},{"declaration":4297,"isOffset":false,"isSlot":false,"src":"18417:3:30","valueSize":1}],"id":4299,"nodeType":"InlineAssembly","src":"18394:82:30"}]},"documentation":{"id":4289,"nodeType":"StructuredDocumentation","src":"18086:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4301,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"18291:18:30","nodeType":"FunctionDefinition","parameters":{"id":4295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"arr","nameLocation":"18325:3:30","nodeType":"VariableDeclaration","scope":4301,"src":"18310:18:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4290,"name":"bytes","nodeType":"ElementaryTypeName","src":"18310:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4291,"nodeType":"ArrayTypeName","src":"18310:7:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4294,"mutability":"mutable","name":"pos","nameLocation":"18338:3:30","nodeType":"VariableDeclaration","scope":4301,"src":"18330:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4293,"name":"uint256","nodeType":"ElementaryTypeName","src":"18330:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18309:33:30"},"returnParameters":{"id":4298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4297,"mutability":"mutable","name":"res","nameLocation":"18379:3:30","nodeType":"VariableDeclaration","scope":4301,"src":"18366:16:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4296,"name":"bytes","nodeType":"ElementaryTypeName","src":"18366:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18365:18:30"},"scope":4370,"src":"18282:200:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4313,"nodeType":"Block","src":"18788:98:30","statements":[{"AST":{"nativeSrc":"18807:73:30","nodeType":"YulBlock","src":"18807:73:30","statements":[{"nativeSrc":"18821:49:30","nodeType":"YulAssignment","src":"18821:49:30","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"18842:3:30","nodeType":"YulIdentifier","src":"18842:3:30"},{"kind":"number","nativeSrc":"18847:4:30","nodeType":"YulLiteral","src":"18847:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18838:3:30","nodeType":"YulIdentifier","src":"18838:3:30"},"nativeSrc":"18838:14:30","nodeType":"YulFunctionCall","src":"18838:14:30"},{"arguments":[{"name":"pos","nativeSrc":"18858:3:30","nodeType":"YulIdentifier","src":"18858:3:30"},{"kind":"number","nativeSrc":"18863:4:30","nodeType":"YulLiteral","src":"18863:4:30","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"18854:3:30","nodeType":"YulIdentifier","src":"18854:3:30"},"nativeSrc":"18854:14:30","nodeType":"YulFunctionCall","src":"18854:14:30"}],"functionName":{"name":"add","nativeSrc":"18834:3:30","nodeType":"YulIdentifier","src":"18834:3:30"},"nativeSrc":"18834:35:30","nodeType":"YulFunctionCall","src":"18834:35:30"}],"functionName":{"name":"mload","nativeSrc":"18828:5:30","nodeType":"YulIdentifier","src":"18828:5:30"},"nativeSrc":"18828:42:30","nodeType":"YulFunctionCall","src":"18828:42:30"},"variableNames":[{"name":"res","nativeSrc":"18821:3:30","nodeType":"YulIdentifier","src":"18821:3:30"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4305,"isOffset":false,"isSlot":false,"src":"18842:3:30","valueSize":1},{"declaration":4307,"isOffset":false,"isSlot":false,"src":"18858:3:30","valueSize":1},{"declaration":4310,"isOffset":false,"isSlot":false,"src":"18821:3:30","valueSize":1}],"id":4312,"nodeType":"InlineAssembly","src":"18798:82:30"}]},"documentation":{"id":4302,"nodeType":"StructuredDocumentation","src":"18488:191:30","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":4314,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"18693:18:30","nodeType":"FunctionDefinition","parameters":{"id":4308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4305,"mutability":"mutable","name":"arr","nameLocation":"18728:3:30","nodeType":"VariableDeclaration","scope":4314,"src":"18712:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":4303,"name":"string","nodeType":"ElementaryTypeName","src":"18712:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":4304,"nodeType":"ArrayTypeName","src":"18712:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":4307,"mutability":"mutable","name":"pos","nameLocation":"18741:3:30","nodeType":"VariableDeclaration","scope":4314,"src":"18733:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4306,"name":"uint256","nodeType":"ElementaryTypeName","src":"18733:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18711:34:30"},"returnParameters":{"id":4311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4310,"mutability":"mutable","name":"res","nameLocation":"18783:3:30","nodeType":"VariableDeclaration","scope":4314,"src":"18769:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4309,"name":"string","nodeType":"ElementaryTypeName","src":"18769:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18768:19:30"},"scope":4370,"src":"18684:202:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4324,"nodeType":"Block","src":"19202:88:30","statements":[{"AST":{"nativeSrc":"19237:47:30","nodeType":"YulBlock","src":"19237:47:30","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"19258:10:30","nodeType":"YulIdentifier","src":"19258:10:30"},{"name":"len","nativeSrc":"19270:3:30","nodeType":"YulIdentifier","src":"19270:3:30"}],"functionName":{"name":"sstore","nativeSrc":"19251:6:30","nodeType":"YulIdentifier","src":"19251:6:30"},"nativeSrc":"19251:23:30","nodeType":"YulFunctionCall","src":"19251:23:30"},"nativeSrc":"19251:23:30","nodeType":"YulExpressionStatement","src":"19251:23:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4318,"isOffset":false,"isSlot":true,"src":"19258:10:30","suffix":"slot","valueSize":1},{"declaration":4320,"isOffset":false,"isSlot":false,"src":"19270:3:30","valueSize":1}],"flags":["memory-safe"],"id":4323,"nodeType":"InlineAssembly","src":"19212:72:30"}]},"documentation":{"id":4315,"nodeType":"StructuredDocumentation","src":"18892:233:30","text":" @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":4325,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"19139:15:30","nodeType":"FunctionDefinition","parameters":{"id":4321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4318,"mutability":"mutable","name":"array","nameLocation":"19173:5:30","nodeType":"VariableDeclaration","scope":4325,"src":"19155:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4316,"name":"address","nodeType":"ElementaryTypeName","src":"19155:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4317,"nodeType":"ArrayTypeName","src":"19155:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":4320,"mutability":"mutable","name":"len","nameLocation":"19188:3:30","nodeType":"VariableDeclaration","scope":4325,"src":"19180:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4319,"name":"uint256","nodeType":"ElementaryTypeName","src":"19180:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19154:38:30"},"returnParameters":{"id":4322,"nodeType":"ParameterList","parameters":[],"src":"19202:0:30"},"scope":4370,"src":"19130:160:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4335,"nodeType":"Block","src":"19606:88:30","statements":[{"AST":{"nativeSrc":"19641:47:30","nodeType":"YulBlock","src":"19641:47:30","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"19662:10:30","nodeType":"YulIdentifier","src":"19662:10:30"},{"name":"len","nativeSrc":"19674:3:30","nodeType":"YulIdentifier","src":"19674:3:30"}],"functionName":{"name":"sstore","nativeSrc":"19655:6:30","nodeType":"YulIdentifier","src":"19655:6:30"},"nativeSrc":"19655:23:30","nodeType":"YulFunctionCall","src":"19655:23:30"},"nativeSrc":"19655:23:30","nodeType":"YulExpressionStatement","src":"19655:23:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4329,"isOffset":false,"isSlot":true,"src":"19662:10:30","suffix":"slot","valueSize":1},{"declaration":4331,"isOffset":false,"isSlot":false,"src":"19674:3:30","valueSize":1}],"flags":["memory-safe"],"id":4334,"nodeType":"InlineAssembly","src":"19616:72:30"}]},"documentation":{"id":4326,"nodeType":"StructuredDocumentation","src":"19296:233:30","text":" @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":4336,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"19543:15:30","nodeType":"FunctionDefinition","parameters":{"id":4332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4329,"mutability":"mutable","name":"array","nameLocation":"19577:5:30","nodeType":"VariableDeclaration","scope":4336,"src":"19559:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19559:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4328,"nodeType":"ArrayTypeName","src":"19559:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":4331,"mutability":"mutable","name":"len","nameLocation":"19592:3:30","nodeType":"VariableDeclaration","scope":4336,"src":"19584:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4330,"name":"uint256","nodeType":"ElementaryTypeName","src":"19584:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19558:38:30"},"returnParameters":{"id":4333,"nodeType":"ParameterList","parameters":[],"src":"19606:0:30"},"scope":4370,"src":"19534:160:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4346,"nodeType":"Block","src":"20010:88:30","statements":[{"AST":{"nativeSrc":"20045:47:30","nodeType":"YulBlock","src":"20045:47:30","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"20066:10:30","nodeType":"YulIdentifier","src":"20066:10:30"},{"name":"len","nativeSrc":"20078:3:30","nodeType":"YulIdentifier","src":"20078:3:30"}],"functionName":{"name":"sstore","nativeSrc":"20059:6:30","nodeType":"YulIdentifier","src":"20059:6:30"},"nativeSrc":"20059:23:30","nodeType":"YulFunctionCall","src":"20059:23:30"},"nativeSrc":"20059:23:30","nodeType":"YulExpressionStatement","src":"20059:23:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4340,"isOffset":false,"isSlot":true,"src":"20066:10:30","suffix":"slot","valueSize":1},{"declaration":4342,"isOffset":false,"isSlot":false,"src":"20078:3:30","valueSize":1}],"flags":["memory-safe"],"id":4345,"nodeType":"InlineAssembly","src":"20020:72:30"}]},"documentation":{"id":4337,"nodeType":"StructuredDocumentation","src":"19700:233:30","text":" @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":4347,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"19947:15:30","nodeType":"FunctionDefinition","parameters":{"id":4343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4340,"mutability":"mutable","name":"array","nameLocation":"19981:5:30","nodeType":"VariableDeclaration","scope":4347,"src":"19963:23:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4338,"name":"uint256","nodeType":"ElementaryTypeName","src":"19963:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4339,"nodeType":"ArrayTypeName","src":"19963:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4342,"mutability":"mutable","name":"len","nameLocation":"19996:3:30","nodeType":"VariableDeclaration","scope":4347,"src":"19988:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4341,"name":"uint256","nodeType":"ElementaryTypeName","src":"19988:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19962:38:30"},"returnParameters":{"id":4344,"nodeType":"ParameterList","parameters":[],"src":"20010:0:30"},"scope":4370,"src":"19938:160:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4357,"nodeType":"Block","src":"20412:88:30","statements":[{"AST":{"nativeSrc":"20447:47:30","nodeType":"YulBlock","src":"20447:47:30","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"20468:10:30","nodeType":"YulIdentifier","src":"20468:10:30"},{"name":"len","nativeSrc":"20480:3:30","nodeType":"YulIdentifier","src":"20480:3:30"}],"functionName":{"name":"sstore","nativeSrc":"20461:6:30","nodeType":"YulIdentifier","src":"20461:6:30"},"nativeSrc":"20461:23:30","nodeType":"YulFunctionCall","src":"20461:23:30"},"nativeSrc":"20461:23:30","nodeType":"YulExpressionStatement","src":"20461:23:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4351,"isOffset":false,"isSlot":true,"src":"20468:10:30","suffix":"slot","valueSize":1},{"declaration":4353,"isOffset":false,"isSlot":false,"src":"20480:3:30","valueSize":1}],"flags":["memory-safe"],"id":4356,"nodeType":"InlineAssembly","src":"20422:72:30"}]},"documentation":{"id":4348,"nodeType":"StructuredDocumentation","src":"20104:233:30","text":" @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":4358,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"20351:15:30","nodeType":"FunctionDefinition","parameters":{"id":4354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"array","nameLocation":"20383:5:30","nodeType":"VariableDeclaration","scope":4358,"src":"20367:21:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4349,"name":"bytes","nodeType":"ElementaryTypeName","src":"20367:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4350,"nodeType":"ArrayTypeName","src":"20367:7:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":4353,"mutability":"mutable","name":"len","nameLocation":"20398:3:30","nodeType":"VariableDeclaration","scope":4358,"src":"20390:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4352,"name":"uint256","nodeType":"ElementaryTypeName","src":"20390:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20366:36:30"},"returnParameters":{"id":4355,"nodeType":"ParameterList","parameters":[],"src":"20412:0:30"},"scope":4370,"src":"20342:158:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4368,"nodeType":"Block","src":"20815:88:30","statements":[{"AST":{"nativeSrc":"20850:47:30","nodeType":"YulBlock","src":"20850:47:30","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"20871:10:30","nodeType":"YulIdentifier","src":"20871:10:30"},{"name":"len","nativeSrc":"20883:3:30","nodeType":"YulIdentifier","src":"20883:3:30"}],"functionName":{"name":"sstore","nativeSrc":"20864:6:30","nodeType":"YulIdentifier","src":"20864:6:30"},"nativeSrc":"20864:23:30","nodeType":"YulFunctionCall","src":"20864:23:30"},"nativeSrc":"20864:23:30","nodeType":"YulExpressionStatement","src":"20864:23:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4362,"isOffset":false,"isSlot":true,"src":"20871:10:30","suffix":"slot","valueSize":1},{"declaration":4364,"isOffset":false,"isSlot":false,"src":"20883:3:30","valueSize":1}],"flags":["memory-safe"],"id":4367,"nodeType":"InlineAssembly","src":"20825:72:30"}]},"documentation":{"id":4359,"nodeType":"StructuredDocumentation","src":"20506:233:30","text":" @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":4369,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"20753:15:30","nodeType":"FunctionDefinition","parameters":{"id":4365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"array","nameLocation":"20786:5:30","nodeType":"VariableDeclaration","scope":4369,"src":"20769:22:30","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":4360,"name":"string","nodeType":"ElementaryTypeName","src":"20769:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":4361,"nodeType":"ArrayTypeName","src":"20769:8:30","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"len","nameLocation":"20801:3:30","nodeType":"VariableDeclaration","scope":4369,"src":"20793:11:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4363,"name":"uint256","nodeType":"ElementaryTypeName","src":"20793:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20768:37:30"},"returnParameters":{"id":4366,"nodeType":"ParameterList","parameters":[],"src":"20815:0:30"},"scope":4370,"src":"20744:159:30","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":4371,"src":"459:20446:30","usedErrors":[],"usedEvents":[]}],"src":"183:20723:30"},"id":30},"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Comparators.sol","exportedSymbols":{"Comparators":[4402]},"id":4403,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4372,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:31"},{"abstract":false,"baseContracts":[],"canonicalName":"Comparators","contractDependencies":[],"contractKind":"library","documentation":{"id":4373,"nodeType":"StructuredDocumentation","src":"131:92:31","text":" @dev Provides a set of functions to compare values.\n _Available since v5.1._"},"fullyImplemented":true,"id":4402,"linearizedBaseContracts":[4402],"name":"Comparators","nameLocation":"232:11:31","nodeType":"ContractDefinition","nodes":[{"body":{"id":4386,"nodeType":"Block","src":"313:29:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4382,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4375,"src":"330:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4383,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"334:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"330:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4381,"id":4385,"nodeType":"Return","src":"323:12:31"}]},"id":4387,"implemented":true,"kind":"function","modifiers":[],"name":"lt","nameLocation":"259:2:31","nodeType":"FunctionDefinition","parameters":{"id":4378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4375,"mutability":"mutable","name":"a","nameLocation":"270:1:31","nodeType":"VariableDeclaration","scope":4387,"src":"262:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4374,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4377,"mutability":"mutable","name":"b","nameLocation":"281:1:31","nodeType":"VariableDeclaration","scope":4387,"src":"273:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4376,"name":"uint256","nodeType":"ElementaryTypeName","src":"273:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"261:22:31"},"returnParameters":{"id":4381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4387,"src":"307:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4379,"name":"bool","nodeType":"ElementaryTypeName","src":"307:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"306:6:31"},"scope":4402,"src":"250:92:31","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4400,"nodeType":"Block","src":"411:29:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4396,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4389,"src":"428:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4397,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4391,"src":"432:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"428:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4395,"id":4399,"nodeType":"Return","src":"421:12:31"}]},"id":4401,"implemented":true,"kind":"function","modifiers":[],"name":"gt","nameLocation":"357:2:31","nodeType":"FunctionDefinition","parameters":{"id":4392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4389,"mutability":"mutable","name":"a","nameLocation":"368:1:31","nodeType":"VariableDeclaration","scope":4401,"src":"360:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4388,"name":"uint256","nodeType":"ElementaryTypeName","src":"360:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4391,"mutability":"mutable","name":"b","nameLocation":"379:1:31","nodeType":"VariableDeclaration","scope":4401,"src":"371:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4390,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"359:22:31"},"returnParameters":{"id":4395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4401,"src":"405:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4393,"name":"bool","nodeType":"ElementaryTypeName","src":"405:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"404:6:31"},"scope":4402,"src":"348:92:31","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4403,"src":"224:218:31","usedErrors":[],"usedEvents":[]}],"src":"105:338:31"},"id":31},"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol","exportedSymbols":{"Panic":[4454]},"id":4455,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4404,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"99:24:32"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":4405,"nodeType":"StructuredDocumentation","src":"125:489:32","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n      using Panic for uint256;\n      // Use any of the declared internal constants\n      function foo() { Panic.GENERIC.panic(); }\n      // Alternatively\n      function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._"},"fullyImplemented":true,"id":4454,"linearizedBaseContracts":[4454],"name":"Panic","nameLocation":"665:5:32","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":4406,"nodeType":"StructuredDocumentation","src":"677:36:32","text":"@dev generic / unspecified error"},"id":4409,"mutability":"constant","name":"GENERIC","nameLocation":"744:7:32","nodeType":"VariableDeclaration","scope":4454,"src":"718:40:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4407,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":4408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"754:4:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":4410,"nodeType":"StructuredDocumentation","src":"764:37:32","text":"@dev used by the assert() builtin"},"id":4413,"mutability":"constant","name":"ASSERT","nameLocation":"832:6:32","nodeType":"VariableDeclaration","scope":4454,"src":"806:39:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4411,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":4412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"841:4:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"851:41:32","text":"@dev arithmetic underflow or overflow"},"id":4417,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"923:14:32","nodeType":"VariableDeclaration","scope":4454,"src":"897:47:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4415,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":4416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"940:4:32","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":4418,"nodeType":"StructuredDocumentation","src":"950:35:32","text":"@dev division or modulo by zero"},"id":4421,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"1016:16:32","nodeType":"VariableDeclaration","scope":4454,"src":"990:49:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4419,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":4420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:4:32","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":4422,"nodeType":"StructuredDocumentation","src":"1045:30:32","text":"@dev enum conversion error"},"id":4425,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1106:21:32","nodeType":"VariableDeclaration","scope":4454,"src":"1080:54:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4423,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":4424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1130:4:32","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":4426,"nodeType":"StructuredDocumentation","src":"1140:36:32","text":"@dev invalid encoding in storage"},"id":4429,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1207:22:32","nodeType":"VariableDeclaration","scope":4454,"src":"1181:55:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4427,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":4428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:4:32","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":4430,"nodeType":"StructuredDocumentation","src":"1242:24:32","text":"@dev empty array pop"},"id":4433,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1297:15:32","nodeType":"VariableDeclaration","scope":4454,"src":"1271:48:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4431,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":4432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1315:4:32","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":4434,"nodeType":"StructuredDocumentation","src":"1325:35:32","text":"@dev array out of bounds access"},"id":4437,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1391:19:32","nodeType":"VariableDeclaration","scope":4454,"src":"1365:52:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint256","nodeType":"ElementaryTypeName","src":"1365:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":4436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1413:4:32","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":4438,"nodeType":"StructuredDocumentation","src":"1423:65:32","text":"@dev resource error (too large allocation or too large array)"},"id":4441,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1519:14:32","nodeType":"VariableDeclaration","scope":4454,"src":"1493:47:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1493:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":4440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1536:4:32","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":4442,"nodeType":"StructuredDocumentation","src":"1546:42:32","text":"@dev calling invalid internal function"},"id":4445,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1619:25:32","nodeType":"VariableDeclaration","scope":4454,"src":"1593:58:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":4444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1647:4:32","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":4452,"nodeType":"Block","src":"1819:151:32","statements":[{"AST":{"nativeSrc":"1854:110:32","nodeType":"YulBlock","src":"1854:110:32","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1875:4:32","nodeType":"YulLiteral","src":"1875:4:32","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1881:10:32","nodeType":"YulLiteral","src":"1881:10:32","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1868:6:32","nodeType":"YulIdentifier","src":"1868:6:32"},"nativeSrc":"1868:24:32","nodeType":"YulFunctionCall","src":"1868:24:32"},"nativeSrc":"1868:24:32","nodeType":"YulExpressionStatement","src":"1868:24:32"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:4:32","nodeType":"YulLiteral","src":"1912:4:32","type":"","value":"0x20"},{"name":"code","nativeSrc":"1918:4:32","nodeType":"YulIdentifier","src":"1918:4:32"}],"functionName":{"name":"mstore","nativeSrc":"1905:6:32","nodeType":"YulIdentifier","src":"1905:6:32"},"nativeSrc":"1905:18:32","nodeType":"YulFunctionCall","src":"1905:18:32"},"nativeSrc":"1905:18:32","nodeType":"YulExpressionStatement","src":"1905:18:32"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1943:4:32","nodeType":"YulLiteral","src":"1943:4:32","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1949:4:32","nodeType":"YulLiteral","src":"1949:4:32","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1936:6:32","nodeType":"YulIdentifier","src":"1936:6:32"},"nativeSrc":"1936:18:32","nodeType":"YulFunctionCall","src":"1936:18:32"},"nativeSrc":"1936:18:32","nodeType":"YulExpressionStatement","src":"1936:18:32"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4448,"isOffset":false,"isSlot":false,"src":"1918:4:32","valueSize":1}],"flags":["memory-safe"],"id":4451,"nodeType":"InlineAssembly","src":"1829:135:32"}]},"documentation":{"id":4446,"nodeType":"StructuredDocumentation","src":"1658:113:32","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":4453,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1785:5:32","nodeType":"FunctionDefinition","parameters":{"id":4449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4448,"mutability":"mutable","name":"code","nameLocation":"1799:4:32","nodeType":"VariableDeclaration","scope":4453,"src":"1791:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4447,"name":"uint256","nodeType":"ElementaryTypeName","src":"1791:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1790:14:32"},"returnParameters":{"id":4450,"nodeType":"ParameterList","parameters":[],"src":"1819:0:32"},"scope":4454,"src":"1776:194:32","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4455,"src":"657:1315:32","usedErrors":[],"usedEvents":[]}],"src":"99:1874:32"},"id":32},"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol","exportedSymbols":{"ReentrancyGuardTransient":[4523],"TransientSlot":[4976]},"id":4524,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4456,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"118:24:33"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol","file":"./TransientSlot.sol","id":4458,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4524,"sourceUnit":4977,"src":"144:50:33","symbolAliases":[{"foreign":{"id":4457,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4976,"src":"152:13:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuardTransient","contractDependencies":[],"contractKind":"contract","documentation":{"id":4459,"nodeType":"StructuredDocumentation","src":"196:180:33","text":" @dev Variant of {ReentrancyGuard} that uses transient storage.\n NOTE: This variant only works on networks where EIP-1153 is available.\n _Available since v5.1._"},"fullyImplemented":true,"id":4523,"linearizedBaseContracts":[4523],"name":"ReentrancyGuardTransient","nameLocation":"395:24:33","nodeType":"ContractDefinition","nodes":[{"global":false,"id":4461,"libraryName":{"id":4460,"name":"TransientSlot","nameLocations":["432:13:33"],"nodeType":"IdentifierPath","referencedDeclaration":4976,"src":"432:13:33"},"nodeType":"UsingForDirective","src":"426:26:33"},{"constant":true,"id":4464,"mutability":"constant","name":"REENTRANCY_GUARD_STORAGE","nameLocation":"602:24:33","nodeType":"VariableDeclaration","scope":4523,"src":"577:126:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"577:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307839623737396231373432326430646639323232333031386233326234643166613436653037313732336436383137653234383664303033626563633535663030","id":4463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"637:66:33","typeDescriptions":{"typeIdentifier":"t_rational_70319816728846589445362000750570655803700195216363692647688146666176345628416_by_1","typeString":"int_const 7031...(69 digits omitted)...8416"},"value":"0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00"},"visibility":"private"},{"documentation":{"id":4465,"nodeType":"StructuredDocumentation","src":"710:52:33","text":" @dev Unauthorized reentrant call."},"errorSelector":"3ee5aeb5","id":4467,"name":"ReentrancyGuardReentrantCall","nameLocation":"773:28:33","nodeType":"ErrorDefinition","parameters":{"id":4466,"nodeType":"ParameterList","parameters":[],"src":"801:2:33"},"src":"767:37:33"},{"body":{"id":4477,"nodeType":"Block","src":"1205:79:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4470,"name":"_nonReentrantBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"1215:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4472,"nodeType":"ExpressionStatement","src":"1215:21:33"},{"id":4473,"nodeType":"PlaceholderStatement","src":"1246:1:33"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4474,"name":"_nonReentrantAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4509,"src":"1257:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1257:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4476,"nodeType":"ExpressionStatement","src":"1257:20:33"}]},"documentation":{"id":4468,"nodeType":"StructuredDocumentation","src":"810:366:33","text":" @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and making it call a\n `private` function that does the actual work."},"id":4478,"name":"nonReentrant","nameLocation":"1190:12:33","nodeType":"ModifierDefinition","parameters":{"id":4469,"nodeType":"ParameterList","parameters":[],"src":"1202:2:33"},"src":"1181:103:33","virtual":false,"visibility":"internal"},{"body":{"id":4496,"nodeType":"Block","src":"1329:338:33","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":4481,"name":"_reentrancyGuardEntered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"1448:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1448:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4487,"nodeType":"IfStatement","src":"1444:93:33","trueBody":{"id":4486,"nodeType":"Block","src":"1475:62:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4483,"name":"ReentrancyGuardReentrantCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4467,"src":"1496:28:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1496:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4485,"nodeType":"RevertStatement","src":"1489:37:33"}]}},{"expression":{"arguments":[{"hexValue":"74727565","id":4493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1655:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4488,"name":"REENTRANCY_GUARD_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"1611:24:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1636:9:33","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":4814,"src":"1611:34:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$4799_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":4491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"id":4492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1648:6:33","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":4909,"src":"1611:43:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$4799_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$4799_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4495,"nodeType":"ExpressionStatement","src":"1611:49:33"}]},"id":4497,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantBefore","nameLocation":"1299:19:33","nodeType":"FunctionDefinition","parameters":{"id":4479,"nodeType":"ParameterList","parameters":[],"src":"1318:2:33"},"returnParameters":{"id":4480,"nodeType":"ParameterList","parameters":[],"src":"1329:0:33"},"scope":4523,"src":"1290:377:33","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4508,"nodeType":"Block","src":"1711:67:33","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":4505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1765:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4500,"name":"REENTRANCY_GUARD_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"1721:24:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1746:9:33","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":4814,"src":"1721:34:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$4799_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":4503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1721:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1758:6:33","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":4909,"src":"1721:43:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$4799_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$4799_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1721:50:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4507,"nodeType":"ExpressionStatement","src":"1721:50:33"}]},"id":4509,"implemented":true,"kind":"function","modifiers":[],"name":"_nonReentrantAfter","nameLocation":"1682:18:33","nodeType":"FunctionDefinition","parameters":{"id":4498,"nodeType":"ParameterList","parameters":[],"src":"1700:2:33"},"returnParameters":{"id":4499,"nodeType":"ParameterList","parameters":[],"src":"1711:0:33"},"scope":4523,"src":"1673:105:33","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4521,"nodeType":"Block","src":"2021:68:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4515,"name":"REENTRANCY_GUARD_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"2038:24:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2063:9:33","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":4814,"src":"2038:34:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$4799_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:5:33","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":4898,"src":"2038:42:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$4799_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$4799_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:44:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4514,"id":4520,"nodeType":"Return","src":"2031:51:33"}]},"documentation":{"id":4510,"nodeType":"StructuredDocumentation","src":"1784:168:33","text":" @dev Returns true if the reentrancy guard is currently set to \"entered\", which indicates there is a\n `nonReentrant` function in the call stack."},"id":4522,"implemented":true,"kind":"function","modifiers":[],"name":"_reentrancyGuardEntered","nameLocation":"1966:23:33","nodeType":"FunctionDefinition","parameters":{"id":4511,"nodeType":"ParameterList","parameters":[],"src":"1989:2:33"},"returnParameters":{"id":4514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4522,"src":"2015:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4512,"name":"bool","nodeType":"ElementaryTypeName","src":"2015:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2014:6:33"},"scope":4523,"src":"1957:132:33","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4524,"src":"377:1714:33","usedErrors":[4467],"usedEvents":[]}],"src":"118:1974:33"},"id":33},"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/SlotDerivation.sol","exportedSymbols":{"SlotDerivation":[4653]},"id":4654,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4525,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"199:24:34"},{"abstract":false,"baseContracts":[],"canonicalName":"SlotDerivation","contractDependencies":[],"contractKind":"library","documentation":{"id":4526,"nodeType":"StructuredDocumentation","src":"225:1373:34","text":" @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n     // Add the library methods\n     using StorageSlot for bytes32;\n     using SlotDerivation for bytes32;\n     // Declare a namespace\n     string private constant _NAMESPACE = \"<namespace>\"; // eg. OpenZeppelin.Slot\n     function setValueInNamespace(uint256 key, address newValue) internal {\n         _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n     }\n     function getValueInNamespace(uint256 key) internal view returns (address) {\n         return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n     }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library.\n _Available since v5.1._"},"fullyImplemented":true,"id":4653,"linearizedBaseContracts":[4653],"name":"SlotDerivation","nameLocation":"1607:14:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":4535,"nodeType":"Block","src":"1790:194:34","statements":[{"AST":{"nativeSrc":"1825:153:34","nodeType":"YulBlock","src":"1825:153:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1846:4:34","nodeType":"YulLiteral","src":"1846:4:34","type":"","value":"0x00"},{"arguments":[{"arguments":[{"arguments":[{"name":"namespace","nativeSrc":"1870:9:34","nodeType":"YulIdentifier","src":"1870:9:34"},{"kind":"number","nativeSrc":"1881:4:34","nodeType":"YulLiteral","src":"1881:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1866:3:34","nodeType":"YulIdentifier","src":"1866:3:34"},"nativeSrc":"1866:20:34","nodeType":"YulFunctionCall","src":"1866:20:34"},{"arguments":[{"name":"namespace","nativeSrc":"1894:9:34","nodeType":"YulIdentifier","src":"1894:9:34"}],"functionName":{"name":"mload","nativeSrc":"1888:5:34","nodeType":"YulIdentifier","src":"1888:5:34"},"nativeSrc":"1888:16:34","nodeType":"YulFunctionCall","src":"1888:16:34"}],"functionName":{"name":"keccak256","nativeSrc":"1856:9:34","nodeType":"YulIdentifier","src":"1856:9:34"},"nativeSrc":"1856:49:34","nodeType":"YulFunctionCall","src":"1856:49:34"},{"kind":"number","nativeSrc":"1907:1:34","nodeType":"YulLiteral","src":"1907:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1852:3:34","nodeType":"YulIdentifier","src":"1852:3:34"},"nativeSrc":"1852:57:34","nodeType":"YulFunctionCall","src":"1852:57:34"}],"functionName":{"name":"mstore","nativeSrc":"1839:6:34","nodeType":"YulIdentifier","src":"1839:6:34"},"nativeSrc":"1839:71:34","nodeType":"YulFunctionCall","src":"1839:71:34"},"nativeSrc":"1839:71:34","nodeType":"YulExpressionStatement","src":"1839:71:34"},{"nativeSrc":"1923:45:34","nodeType":"YulAssignment","src":"1923:45:34","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1945:4:34","nodeType":"YulLiteral","src":"1945:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1951:4:34","nodeType":"YulLiteral","src":"1951:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1935:9:34","nodeType":"YulIdentifier","src":"1935:9:34"},"nativeSrc":"1935:21:34","nodeType":"YulFunctionCall","src":"1935:21:34"},{"arguments":[{"kind":"number","nativeSrc":"1962:4:34","nodeType":"YulLiteral","src":"1962:4:34","type":"","value":"0xff"}],"functionName":{"name":"not","nativeSrc":"1958:3:34","nodeType":"YulIdentifier","src":"1958:3:34"},"nativeSrc":"1958:9:34","nodeType":"YulFunctionCall","src":"1958:9:34"}],"functionName":{"name":"and","nativeSrc":"1931:3:34","nodeType":"YulIdentifier","src":"1931:3:34"},"nativeSrc":"1931:37:34","nodeType":"YulFunctionCall","src":"1931:37:34"},"variableNames":[{"name":"slot","nativeSrc":"1923:4:34","nodeType":"YulIdentifier","src":"1923:4:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4529,"isOffset":false,"isSlot":false,"src":"1870:9:34","valueSize":1},{"declaration":4529,"isOffset":false,"isSlot":false,"src":"1894:9:34","valueSize":1},{"declaration":4532,"isOffset":false,"isSlot":false,"src":"1923:4:34","valueSize":1}],"flags":["memory-safe"],"id":4534,"nodeType":"InlineAssembly","src":"1800:178:34"}]},"documentation":{"id":4527,"nodeType":"StructuredDocumentation","src":"1628:74:34","text":" @dev Derive an ERC-7201 slot from a string (namespace)."},"id":4536,"implemented":true,"kind":"function","modifiers":[],"name":"erc7201Slot","nameLocation":"1716:11:34","nodeType":"FunctionDefinition","parameters":{"id":4530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4529,"mutability":"mutable","name":"namespace","nameLocation":"1742:9:34","nodeType":"VariableDeclaration","scope":4536,"src":"1728:23:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4528,"name":"string","nodeType":"ElementaryTypeName","src":"1728:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1727:25:34"},"returnParameters":{"id":4533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4532,"mutability":"mutable","name":"slot","nameLocation":"1784:4:34","nodeType":"VariableDeclaration","scope":4536,"src":"1776:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1776:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1775:14:34"},"scope":4653,"src":"1707:277:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4557,"nodeType":"Block","src":"2176:86:34","statements":[{"id":4556,"nodeType":"UncheckedBlock","src":"2186:70:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4550,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4539,"src":"2233:4:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2225:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4548,"name":"uint256","nodeType":"ElementaryTypeName","src":"2225:7:34","typeDescriptions":{}}},"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2225:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4552,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4541,"src":"2241:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2225:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2217:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2217:7:34","typeDescriptions":{}}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2217:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4545,"id":4555,"nodeType":"Return","src":"2210:35:34"}]}]},"documentation":{"id":4537,"nodeType":"StructuredDocumentation","src":"1990:99:34","text":" @dev Add an offset to a slot to get the n-th element of a structure or an array."},"id":4558,"implemented":true,"kind":"function","modifiers":[],"name":"offset","nameLocation":"2103:6:34","nodeType":"FunctionDefinition","parameters":{"id":4542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4539,"mutability":"mutable","name":"slot","nameLocation":"2118:4:34","nodeType":"VariableDeclaration","scope":4558,"src":"2110:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2110:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4541,"mutability":"mutable","name":"pos","nameLocation":"2132:3:34","nodeType":"VariableDeclaration","scope":4558,"src":"2124:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4540,"name":"uint256","nodeType":"ElementaryTypeName","src":"2124:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2109:27:34"},"returnParameters":{"id":4545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4544,"mutability":"mutable","name":"result","nameLocation":"2168:6:34","nodeType":"VariableDeclaration","scope":4558,"src":"2160:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2160:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2159:16:34"},"scope":4653,"src":"2094:168:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4567,"nodeType":"Block","src":"2465:127:34","statements":[{"AST":{"nativeSrc":"2500:86:34","nodeType":"YulBlock","src":"2500:86:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2521:4:34","nodeType":"YulLiteral","src":"2521:4:34","type":"","value":"0x00"},{"name":"slot","nativeSrc":"2527:4:34","nodeType":"YulIdentifier","src":"2527:4:34"}],"functionName":{"name":"mstore","nativeSrc":"2514:6:34","nodeType":"YulIdentifier","src":"2514:6:34"},"nativeSrc":"2514:18:34","nodeType":"YulFunctionCall","src":"2514:18:34"},"nativeSrc":"2514:18:34","nodeType":"YulExpressionStatement","src":"2514:18:34"},{"nativeSrc":"2545:31:34","nodeType":"YulAssignment","src":"2545:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"2565:4:34","nodeType":"YulLiteral","src":"2565:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2571:4:34","nodeType":"YulLiteral","src":"2571:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2555:9:34","nodeType":"YulIdentifier","src":"2555:9:34"},"nativeSrc":"2555:21:34","nodeType":"YulFunctionCall","src":"2555:21:34"},"variableNames":[{"name":"result","nativeSrc":"2545:6:34","nodeType":"YulIdentifier","src":"2545:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4564,"isOffset":false,"isSlot":false,"src":"2545:6:34","valueSize":1},{"declaration":4561,"isOffset":false,"isSlot":false,"src":"2527:4:34","valueSize":1}],"flags":["memory-safe"],"id":4566,"nodeType":"InlineAssembly","src":"2475:111:34"}]},"documentation":{"id":4559,"nodeType":"StructuredDocumentation","src":"2268:118:34","text":" @dev Derive the location of the first element in an array from the slot where the length is stored."},"id":4568,"implemented":true,"kind":"function","modifiers":[],"name":"deriveArray","nameLocation":"2400:11:34","nodeType":"FunctionDefinition","parameters":{"id":4562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4561,"mutability":"mutable","name":"slot","nameLocation":"2420:4:34","nodeType":"VariableDeclaration","scope":4568,"src":"2412:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2412:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2411:14:34"},"returnParameters":{"id":4565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4564,"mutability":"mutable","name":"result","nameLocation":"2457:6:34","nodeType":"VariableDeclaration","scope":4568,"src":"2449:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2449:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2448:16:34"},"scope":4653,"src":"2391:201:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4579,"nodeType":"Block","src":"2770:179:34","statements":[{"AST":{"nativeSrc":"2805:138:34","nodeType":"YulBlock","src":"2805:138:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2826:4:34","nodeType":"YulLiteral","src":"2826:4:34","type":"","value":"0x00"},{"arguments":[{"name":"key","nativeSrc":"2836:3:34","nodeType":"YulIdentifier","src":"2836:3:34"},{"arguments":[{"kind":"number","nativeSrc":"2845:2:34","nodeType":"YulLiteral","src":"2845:2:34","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2853:1:34","nodeType":"YulLiteral","src":"2853:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2849:3:34","nodeType":"YulIdentifier","src":"2849:3:34"},"nativeSrc":"2849:6:34","nodeType":"YulFunctionCall","src":"2849:6:34"}],"functionName":{"name":"shr","nativeSrc":"2841:3:34","nodeType":"YulIdentifier","src":"2841:3:34"},"nativeSrc":"2841:15:34","nodeType":"YulFunctionCall","src":"2841:15:34"}],"functionName":{"name":"and","nativeSrc":"2832:3:34","nodeType":"YulIdentifier","src":"2832:3:34"},"nativeSrc":"2832:25:34","nodeType":"YulFunctionCall","src":"2832:25:34"}],"functionName":{"name":"mstore","nativeSrc":"2819:6:34","nodeType":"YulIdentifier","src":"2819:6:34"},"nativeSrc":"2819:39:34","nodeType":"YulFunctionCall","src":"2819:39:34"},"nativeSrc":"2819:39:34","nodeType":"YulExpressionStatement","src":"2819:39:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2878:4:34","nodeType":"YulLiteral","src":"2878:4:34","type":"","value":"0x20"},{"name":"slot","nativeSrc":"2884:4:34","nodeType":"YulIdentifier","src":"2884:4:34"}],"functionName":{"name":"mstore","nativeSrc":"2871:6:34","nodeType":"YulIdentifier","src":"2871:6:34"},"nativeSrc":"2871:18:34","nodeType":"YulFunctionCall","src":"2871:18:34"},"nativeSrc":"2871:18:34","nodeType":"YulExpressionStatement","src":"2871:18:34"},{"nativeSrc":"2902:31:34","nodeType":"YulAssignment","src":"2902:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"2922:4:34","nodeType":"YulLiteral","src":"2922:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2928:4:34","nodeType":"YulLiteral","src":"2928:4:34","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"2912:9:34","nodeType":"YulIdentifier","src":"2912:9:34"},"nativeSrc":"2912:21:34","nodeType":"YulFunctionCall","src":"2912:21:34"},"variableNames":[{"name":"result","nativeSrc":"2902:6:34","nodeType":"YulIdentifier","src":"2902:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4573,"isOffset":false,"isSlot":false,"src":"2836:3:34","valueSize":1},{"declaration":4576,"isOffset":false,"isSlot":false,"src":"2902:6:34","valueSize":1},{"declaration":4571,"isOffset":false,"isSlot":false,"src":"2884:4:34","valueSize":1}],"flags":["memory-safe"],"id":4578,"nodeType":"InlineAssembly","src":"2780:163:34"}]},"documentation":{"id":4569,"nodeType":"StructuredDocumentation","src":"2598:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4580,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"2690:13:34","nodeType":"FunctionDefinition","parameters":{"id":4574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4571,"mutability":"mutable","name":"slot","nameLocation":"2712:4:34","nodeType":"VariableDeclaration","scope":4580,"src":"2704:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2704:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4573,"mutability":"mutable","name":"key","nameLocation":"2726:3:34","nodeType":"VariableDeclaration","scope":4580,"src":"2718:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4572,"name":"address","nodeType":"ElementaryTypeName","src":"2718:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2703:27:34"},"returnParameters":{"id":4577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4576,"mutability":"mutable","name":"result","nameLocation":"2762:6:34","nodeType":"VariableDeclaration","scope":4580,"src":"2754:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2754:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2753:16:34"},"scope":4653,"src":"2681:268:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4591,"nodeType":"Block","src":"3124:173:34","statements":[{"AST":{"nativeSrc":"3159:132:34","nodeType":"YulBlock","src":"3159:132:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3180:4:34","nodeType":"YulLiteral","src":"3180:4:34","type":"","value":"0x00"},{"arguments":[{"arguments":[{"name":"key","nativeSrc":"3200:3:34","nodeType":"YulIdentifier","src":"3200:3:34"}],"functionName":{"name":"iszero","nativeSrc":"3193:6:34","nodeType":"YulIdentifier","src":"3193:6:34"},"nativeSrc":"3193:11:34","nodeType":"YulFunctionCall","src":"3193:11:34"}],"functionName":{"name":"iszero","nativeSrc":"3186:6:34","nodeType":"YulIdentifier","src":"3186:6:34"},"nativeSrc":"3186:19:34","nodeType":"YulFunctionCall","src":"3186:19:34"}],"functionName":{"name":"mstore","nativeSrc":"3173:6:34","nodeType":"YulIdentifier","src":"3173:6:34"},"nativeSrc":"3173:33:34","nodeType":"YulFunctionCall","src":"3173:33:34"},"nativeSrc":"3173:33:34","nodeType":"YulExpressionStatement","src":"3173:33:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3226:4:34","nodeType":"YulLiteral","src":"3226:4:34","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3232:4:34","nodeType":"YulIdentifier","src":"3232:4:34"}],"functionName":{"name":"mstore","nativeSrc":"3219:6:34","nodeType":"YulIdentifier","src":"3219:6:34"},"nativeSrc":"3219:18:34","nodeType":"YulFunctionCall","src":"3219:18:34"},"nativeSrc":"3219:18:34","nodeType":"YulExpressionStatement","src":"3219:18:34"},{"nativeSrc":"3250:31:34","nodeType":"YulAssignment","src":"3250:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"3270:4:34","nodeType":"YulLiteral","src":"3270:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3276:4:34","nodeType":"YulLiteral","src":"3276:4:34","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3260:9:34","nodeType":"YulIdentifier","src":"3260:9:34"},"nativeSrc":"3260:21:34","nodeType":"YulFunctionCall","src":"3260:21:34"},"variableNames":[{"name":"result","nativeSrc":"3250:6:34","nodeType":"YulIdentifier","src":"3250:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4585,"isOffset":false,"isSlot":false,"src":"3200:3:34","valueSize":1},{"declaration":4588,"isOffset":false,"isSlot":false,"src":"3250:6:34","valueSize":1},{"declaration":4583,"isOffset":false,"isSlot":false,"src":"3232:4:34","valueSize":1}],"flags":["memory-safe"],"id":4590,"nodeType":"InlineAssembly","src":"3134:157:34"}]},"documentation":{"id":4581,"nodeType":"StructuredDocumentation","src":"2955:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4592,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3047:13:34","nodeType":"FunctionDefinition","parameters":{"id":4586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4583,"mutability":"mutable","name":"slot","nameLocation":"3069:4:34","nodeType":"VariableDeclaration","scope":4592,"src":"3061:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3061:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4585,"mutability":"mutable","name":"key","nameLocation":"3080:3:34","nodeType":"VariableDeclaration","scope":4592,"src":"3075:8:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4584,"name":"bool","nodeType":"ElementaryTypeName","src":"3075:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3060:24:34"},"returnParameters":{"id":4589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4588,"mutability":"mutable","name":"result","nameLocation":"3116:6:34","nodeType":"VariableDeclaration","scope":4592,"src":"3108:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3108:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3107:16:34"},"scope":4653,"src":"3038:259:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4603,"nodeType":"Block","src":"3475:157:34","statements":[{"AST":{"nativeSrc":"3510:116:34","nodeType":"YulBlock","src":"3510:116:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3531:4:34","nodeType":"YulLiteral","src":"3531:4:34","type":"","value":"0x00"},{"name":"key","nativeSrc":"3537:3:34","nodeType":"YulIdentifier","src":"3537:3:34"}],"functionName":{"name":"mstore","nativeSrc":"3524:6:34","nodeType":"YulIdentifier","src":"3524:6:34"},"nativeSrc":"3524:17:34","nodeType":"YulFunctionCall","src":"3524:17:34"},"nativeSrc":"3524:17:34","nodeType":"YulExpressionStatement","src":"3524:17:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3561:4:34","nodeType":"YulLiteral","src":"3561:4:34","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3567:4:34","nodeType":"YulIdentifier","src":"3567:4:34"}],"functionName":{"name":"mstore","nativeSrc":"3554:6:34","nodeType":"YulIdentifier","src":"3554:6:34"},"nativeSrc":"3554:18:34","nodeType":"YulFunctionCall","src":"3554:18:34"},"nativeSrc":"3554:18:34","nodeType":"YulExpressionStatement","src":"3554:18:34"},{"nativeSrc":"3585:31:34","nodeType":"YulAssignment","src":"3585:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"3605:4:34","nodeType":"YulLiteral","src":"3605:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3611:4:34","nodeType":"YulLiteral","src":"3611:4:34","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3595:9:34","nodeType":"YulIdentifier","src":"3595:9:34"},"nativeSrc":"3595:21:34","nodeType":"YulFunctionCall","src":"3595:21:34"},"variableNames":[{"name":"result","nativeSrc":"3585:6:34","nodeType":"YulIdentifier","src":"3585:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4597,"isOffset":false,"isSlot":false,"src":"3537:3:34","valueSize":1},{"declaration":4600,"isOffset":false,"isSlot":false,"src":"3585:6:34","valueSize":1},{"declaration":4595,"isOffset":false,"isSlot":false,"src":"3567:4:34","valueSize":1}],"flags":["memory-safe"],"id":4602,"nodeType":"InlineAssembly","src":"3485:141:34"}]},"documentation":{"id":4593,"nodeType":"StructuredDocumentation","src":"3303:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4604,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3395:13:34","nodeType":"FunctionDefinition","parameters":{"id":4598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4595,"mutability":"mutable","name":"slot","nameLocation":"3417:4:34","nodeType":"VariableDeclaration","scope":4604,"src":"3409:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3409:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4597,"mutability":"mutable","name":"key","nameLocation":"3431:3:34","nodeType":"VariableDeclaration","scope":4604,"src":"3423:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3423:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3408:27:34"},"returnParameters":{"id":4601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4600,"mutability":"mutable","name":"result","nameLocation":"3467:6:34","nodeType":"VariableDeclaration","scope":4604,"src":"3459:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3459:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3458:16:34"},"scope":4653,"src":"3386:246:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4615,"nodeType":"Block","src":"3810:157:34","statements":[{"AST":{"nativeSrc":"3845:116:34","nodeType":"YulBlock","src":"3845:116:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3866:4:34","nodeType":"YulLiteral","src":"3866:4:34","type":"","value":"0x00"},{"name":"key","nativeSrc":"3872:3:34","nodeType":"YulIdentifier","src":"3872:3:34"}],"functionName":{"name":"mstore","nativeSrc":"3859:6:34","nodeType":"YulIdentifier","src":"3859:6:34"},"nativeSrc":"3859:17:34","nodeType":"YulFunctionCall","src":"3859:17:34"},"nativeSrc":"3859:17:34","nodeType":"YulExpressionStatement","src":"3859:17:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3896:4:34","nodeType":"YulLiteral","src":"3896:4:34","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3902:4:34","nodeType":"YulIdentifier","src":"3902:4:34"}],"functionName":{"name":"mstore","nativeSrc":"3889:6:34","nodeType":"YulIdentifier","src":"3889:6:34"},"nativeSrc":"3889:18:34","nodeType":"YulFunctionCall","src":"3889:18:34"},"nativeSrc":"3889:18:34","nodeType":"YulExpressionStatement","src":"3889:18:34"},{"nativeSrc":"3920:31:34","nodeType":"YulAssignment","src":"3920:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"3940:4:34","nodeType":"YulLiteral","src":"3940:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3946:4:34","nodeType":"YulLiteral","src":"3946:4:34","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3930:9:34","nodeType":"YulIdentifier","src":"3930:9:34"},"nativeSrc":"3930:21:34","nodeType":"YulFunctionCall","src":"3930:21:34"},"variableNames":[{"name":"result","nativeSrc":"3920:6:34","nodeType":"YulIdentifier","src":"3920:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4609,"isOffset":false,"isSlot":false,"src":"3872:3:34","valueSize":1},{"declaration":4612,"isOffset":false,"isSlot":false,"src":"3920:6:34","valueSize":1},{"declaration":4607,"isOffset":false,"isSlot":false,"src":"3902:4:34","valueSize":1}],"flags":["memory-safe"],"id":4614,"nodeType":"InlineAssembly","src":"3820:141:34"}]},"documentation":{"id":4605,"nodeType":"StructuredDocumentation","src":"3638:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4616,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3730:13:34","nodeType":"FunctionDefinition","parameters":{"id":4610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4607,"mutability":"mutable","name":"slot","nameLocation":"3752:4:34","nodeType":"VariableDeclaration","scope":4616,"src":"3744:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3744:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4609,"mutability":"mutable","name":"key","nameLocation":"3766:3:34","nodeType":"VariableDeclaration","scope":4616,"src":"3758:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4608,"name":"uint256","nodeType":"ElementaryTypeName","src":"3758:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3743:27:34"},"returnParameters":{"id":4613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4612,"mutability":"mutable","name":"result","nameLocation":"3802:6:34","nodeType":"VariableDeclaration","scope":4616,"src":"3794:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3794:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3793:16:34"},"scope":4653,"src":"3721:246:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4627,"nodeType":"Block","src":"4144:157:34","statements":[{"AST":{"nativeSrc":"4179:116:34","nodeType":"YulBlock","src":"4179:116:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4200:4:34","nodeType":"YulLiteral","src":"4200:4:34","type":"","value":"0x00"},{"name":"key","nativeSrc":"4206:3:34","nodeType":"YulIdentifier","src":"4206:3:34"}],"functionName":{"name":"mstore","nativeSrc":"4193:6:34","nodeType":"YulIdentifier","src":"4193:6:34"},"nativeSrc":"4193:17:34","nodeType":"YulFunctionCall","src":"4193:17:34"},"nativeSrc":"4193:17:34","nodeType":"YulExpressionStatement","src":"4193:17:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4230:4:34","nodeType":"YulLiteral","src":"4230:4:34","type":"","value":"0x20"},{"name":"slot","nativeSrc":"4236:4:34","nodeType":"YulIdentifier","src":"4236:4:34"}],"functionName":{"name":"mstore","nativeSrc":"4223:6:34","nodeType":"YulIdentifier","src":"4223:6:34"},"nativeSrc":"4223:18:34","nodeType":"YulFunctionCall","src":"4223:18:34"},"nativeSrc":"4223:18:34","nodeType":"YulExpressionStatement","src":"4223:18:34"},{"nativeSrc":"4254:31:34","nodeType":"YulAssignment","src":"4254:31:34","value":{"arguments":[{"kind":"number","nativeSrc":"4274:4:34","nodeType":"YulLiteral","src":"4274:4:34","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4280:4:34","nodeType":"YulLiteral","src":"4280:4:34","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"4264:9:34","nodeType":"YulIdentifier","src":"4264:9:34"},"nativeSrc":"4264:21:34","nodeType":"YulFunctionCall","src":"4264:21:34"},"variableNames":[{"name":"result","nativeSrc":"4254:6:34","nodeType":"YulIdentifier","src":"4254:6:34"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4621,"isOffset":false,"isSlot":false,"src":"4206:3:34","valueSize":1},{"declaration":4624,"isOffset":false,"isSlot":false,"src":"4254:6:34","valueSize":1},{"declaration":4619,"isOffset":false,"isSlot":false,"src":"4236:4:34","valueSize":1}],"flags":["memory-safe"],"id":4626,"nodeType":"InlineAssembly","src":"4154:141:34"}]},"documentation":{"id":4617,"nodeType":"StructuredDocumentation","src":"3973:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4628,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4065:13:34","nodeType":"FunctionDefinition","parameters":{"id":4622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4619,"mutability":"mutable","name":"slot","nameLocation":"4087:4:34","nodeType":"VariableDeclaration","scope":4628,"src":"4079:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4079:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4621,"mutability":"mutable","name":"key","nameLocation":"4100:3:34","nodeType":"VariableDeclaration","scope":4628,"src":"4093:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4620,"name":"int256","nodeType":"ElementaryTypeName","src":"4093:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4078:26:34"},"returnParameters":{"id":4625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4624,"mutability":"mutable","name":"result","nameLocation":"4136:6:34","nodeType":"VariableDeclaration","scope":4628,"src":"4128:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4128:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4127:16:34"},"scope":4653,"src":"4056:245:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4639,"nodeType":"Block","src":"4485:326:34","statements":[{"AST":{"nativeSrc":"4520:285:34","nodeType":"YulBlock","src":"4520:285:34","statements":[{"nativeSrc":"4534:24:34","nodeType":"YulVariableDeclaration","src":"4534:24:34","value":{"arguments":[{"name":"key","nativeSrc":"4554:3:34","nodeType":"YulIdentifier","src":"4554:3:34"}],"functionName":{"name":"mload","nativeSrc":"4548:5:34","nodeType":"YulIdentifier","src":"4548:5:34"},"nativeSrc":"4548:10:34","nodeType":"YulFunctionCall","src":"4548:10:34"},"variables":[{"name":"length","nativeSrc":"4538:6:34","nodeType":"YulTypedName","src":"4538:6:34","type":""}]},{"nativeSrc":"4571:27:34","nodeType":"YulVariableDeclaration","src":"4571:27:34","value":{"arguments":[{"name":"key","nativeSrc":"4588:3:34","nodeType":"YulIdentifier","src":"4588:3:34"},{"kind":"number","nativeSrc":"4593:4:34","nodeType":"YulLiteral","src":"4593:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4584:3:34","nodeType":"YulIdentifier","src":"4584:3:34"},"nativeSrc":"4584:14:34","nodeType":"YulFunctionCall","src":"4584:14:34"},"variables":[{"name":"begin","nativeSrc":"4575:5:34","nodeType":"YulTypedName","src":"4575:5:34","type":""}]},{"nativeSrc":"4611:29:34","nodeType":"YulVariableDeclaration","src":"4611:29:34","value":{"arguments":[{"name":"begin","nativeSrc":"4626:5:34","nodeType":"YulIdentifier","src":"4626:5:34"},{"name":"length","nativeSrc":"4633:6:34","nodeType":"YulIdentifier","src":"4633:6:34"}],"functionName":{"name":"add","nativeSrc":"4622:3:34","nodeType":"YulIdentifier","src":"4622:3:34"},"nativeSrc":"4622:18:34","nodeType":"YulFunctionCall","src":"4622:18:34"},"variables":[{"name":"end","nativeSrc":"4615:3:34","nodeType":"YulTypedName","src":"4615:3:34","type":""}]},{"nativeSrc":"4653:23:34","nodeType":"YulVariableDeclaration","src":"4653:23:34","value":{"arguments":[{"name":"end","nativeSrc":"4672:3:34","nodeType":"YulIdentifier","src":"4672:3:34"}],"functionName":{"name":"mload","nativeSrc":"4666:5:34","nodeType":"YulIdentifier","src":"4666:5:34"},"nativeSrc":"4666:10:34","nodeType":"YulFunctionCall","src":"4666:10:34"},"variables":[{"name":"cache","nativeSrc":"4657:5:34","nodeType":"YulTypedName","src":"4657:5:34","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4696:3:34","nodeType":"YulIdentifier","src":"4696:3:34"},{"name":"slot","nativeSrc":"4701:4:34","nodeType":"YulIdentifier","src":"4701:4:34"}],"functionName":{"name":"mstore","nativeSrc":"4689:6:34","nodeType":"YulIdentifier","src":"4689:6:34"},"nativeSrc":"4689:17:34","nodeType":"YulFunctionCall","src":"4689:17:34"},"nativeSrc":"4689:17:34","nodeType":"YulExpressionStatement","src":"4689:17:34"},{"nativeSrc":"4719:45:34","nodeType":"YulAssignment","src":"4719:45:34","value":{"arguments":[{"name":"begin","nativeSrc":"4739:5:34","nodeType":"YulIdentifier","src":"4739:5:34"},{"arguments":[{"name":"length","nativeSrc":"4750:6:34","nodeType":"YulIdentifier","src":"4750:6:34"},{"kind":"number","nativeSrc":"4758:4:34","nodeType":"YulLiteral","src":"4758:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4746:3:34","nodeType":"YulIdentifier","src":"4746:3:34"},"nativeSrc":"4746:17:34","nodeType":"YulFunctionCall","src":"4746:17:34"}],"functionName":{"name":"keccak256","nativeSrc":"4729:9:34","nodeType":"YulIdentifier","src":"4729:9:34"},"nativeSrc":"4729:35:34","nodeType":"YulFunctionCall","src":"4729:35:34"},"variableNames":[{"name":"result","nativeSrc":"4719:6:34","nodeType":"YulIdentifier","src":"4719:6:34"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4784:3:34","nodeType":"YulIdentifier","src":"4784:3:34"},{"name":"cache","nativeSrc":"4789:5:34","nodeType":"YulIdentifier","src":"4789:5:34"}],"functionName":{"name":"mstore","nativeSrc":"4777:6:34","nodeType":"YulIdentifier","src":"4777:6:34"},"nativeSrc":"4777:18:34","nodeType":"YulFunctionCall","src":"4777:18:34"},"nativeSrc":"4777:18:34","nodeType":"YulExpressionStatement","src":"4777:18:34"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4633,"isOffset":false,"isSlot":false,"src":"4554:3:34","valueSize":1},{"declaration":4633,"isOffset":false,"isSlot":false,"src":"4588:3:34","valueSize":1},{"declaration":4636,"isOffset":false,"isSlot":false,"src":"4719:6:34","valueSize":1},{"declaration":4631,"isOffset":false,"isSlot":false,"src":"4701:4:34","valueSize":1}],"flags":["memory-safe"],"id":4638,"nodeType":"InlineAssembly","src":"4495:310:34"}]},"documentation":{"id":4629,"nodeType":"StructuredDocumentation","src":"4307:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4640,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4399:13:34","nodeType":"FunctionDefinition","parameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4631,"mutability":"mutable","name":"slot","nameLocation":"4421:4:34","nodeType":"VariableDeclaration","scope":4640,"src":"4413:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4413:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4633,"mutability":"mutable","name":"key","nameLocation":"4441:3:34","nodeType":"VariableDeclaration","scope":4640,"src":"4427:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4632,"name":"string","nodeType":"ElementaryTypeName","src":"4427:6:34","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4412:33:34"},"returnParameters":{"id":4637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4636,"mutability":"mutable","name":"result","nameLocation":"4477:6:34","nodeType":"VariableDeclaration","scope":4640,"src":"4469:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4469:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4468:16:34"},"scope":4653,"src":"4390:421:34","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4651,"nodeType":"Block","src":"4994:326:34","statements":[{"AST":{"nativeSrc":"5029:285:34","nodeType":"YulBlock","src":"5029:285:34","statements":[{"nativeSrc":"5043:24:34","nodeType":"YulVariableDeclaration","src":"5043:24:34","value":{"arguments":[{"name":"key","nativeSrc":"5063:3:34","nodeType":"YulIdentifier","src":"5063:3:34"}],"functionName":{"name":"mload","nativeSrc":"5057:5:34","nodeType":"YulIdentifier","src":"5057:5:34"},"nativeSrc":"5057:10:34","nodeType":"YulFunctionCall","src":"5057:10:34"},"variables":[{"name":"length","nativeSrc":"5047:6:34","nodeType":"YulTypedName","src":"5047:6:34","type":""}]},{"nativeSrc":"5080:27:34","nodeType":"YulVariableDeclaration","src":"5080:27:34","value":{"arguments":[{"name":"key","nativeSrc":"5097:3:34","nodeType":"YulIdentifier","src":"5097:3:34"},{"kind":"number","nativeSrc":"5102:4:34","nodeType":"YulLiteral","src":"5102:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5093:3:34","nodeType":"YulIdentifier","src":"5093:3:34"},"nativeSrc":"5093:14:34","nodeType":"YulFunctionCall","src":"5093:14:34"},"variables":[{"name":"begin","nativeSrc":"5084:5:34","nodeType":"YulTypedName","src":"5084:5:34","type":""}]},{"nativeSrc":"5120:29:34","nodeType":"YulVariableDeclaration","src":"5120:29:34","value":{"arguments":[{"name":"begin","nativeSrc":"5135:5:34","nodeType":"YulIdentifier","src":"5135:5:34"},{"name":"length","nativeSrc":"5142:6:34","nodeType":"YulIdentifier","src":"5142:6:34"}],"functionName":{"name":"add","nativeSrc":"5131:3:34","nodeType":"YulIdentifier","src":"5131:3:34"},"nativeSrc":"5131:18:34","nodeType":"YulFunctionCall","src":"5131:18:34"},"variables":[{"name":"end","nativeSrc":"5124:3:34","nodeType":"YulTypedName","src":"5124:3:34","type":""}]},{"nativeSrc":"5162:23:34","nodeType":"YulVariableDeclaration","src":"5162:23:34","value":{"arguments":[{"name":"end","nativeSrc":"5181:3:34","nodeType":"YulIdentifier","src":"5181:3:34"}],"functionName":{"name":"mload","nativeSrc":"5175:5:34","nodeType":"YulIdentifier","src":"5175:5:34"},"nativeSrc":"5175:10:34","nodeType":"YulFunctionCall","src":"5175:10:34"},"variables":[{"name":"cache","nativeSrc":"5166:5:34","nodeType":"YulTypedName","src":"5166:5:34","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5205:3:34","nodeType":"YulIdentifier","src":"5205:3:34"},{"name":"slot","nativeSrc":"5210:4:34","nodeType":"YulIdentifier","src":"5210:4:34"}],"functionName":{"name":"mstore","nativeSrc":"5198:6:34","nodeType":"YulIdentifier","src":"5198:6:34"},"nativeSrc":"5198:17:34","nodeType":"YulFunctionCall","src":"5198:17:34"},"nativeSrc":"5198:17:34","nodeType":"YulExpressionStatement","src":"5198:17:34"},{"nativeSrc":"5228:45:34","nodeType":"YulAssignment","src":"5228:45:34","value":{"arguments":[{"name":"begin","nativeSrc":"5248:5:34","nodeType":"YulIdentifier","src":"5248:5:34"},{"arguments":[{"name":"length","nativeSrc":"5259:6:34","nodeType":"YulIdentifier","src":"5259:6:34"},{"kind":"number","nativeSrc":"5267:4:34","nodeType":"YulLiteral","src":"5267:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5255:3:34","nodeType":"YulIdentifier","src":"5255:3:34"},"nativeSrc":"5255:17:34","nodeType":"YulFunctionCall","src":"5255:17:34"}],"functionName":{"name":"keccak256","nativeSrc":"5238:9:34","nodeType":"YulIdentifier","src":"5238:9:34"},"nativeSrc":"5238:35:34","nodeType":"YulFunctionCall","src":"5238:35:34"},"variableNames":[{"name":"result","nativeSrc":"5228:6:34","nodeType":"YulIdentifier","src":"5228:6:34"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5293:3:34","nodeType":"YulIdentifier","src":"5293:3:34"},{"name":"cache","nativeSrc":"5298:5:34","nodeType":"YulIdentifier","src":"5298:5:34"}],"functionName":{"name":"mstore","nativeSrc":"5286:6:34","nodeType":"YulIdentifier","src":"5286:6:34"},"nativeSrc":"5286:18:34","nodeType":"YulFunctionCall","src":"5286:18:34"},"nativeSrc":"5286:18:34","nodeType":"YulExpressionStatement","src":"5286:18:34"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4645,"isOffset":false,"isSlot":false,"src":"5063:3:34","valueSize":1},{"declaration":4645,"isOffset":false,"isSlot":false,"src":"5097:3:34","valueSize":1},{"declaration":4648,"isOffset":false,"isSlot":false,"src":"5228:6:34","valueSize":1},{"declaration":4643,"isOffset":false,"isSlot":false,"src":"5210:4:34","valueSize":1}],"flags":["memory-safe"],"id":4650,"nodeType":"InlineAssembly","src":"5004:310:34"}]},"documentation":{"id":4641,"nodeType":"StructuredDocumentation","src":"4817:78:34","text":" @dev Derive the location of a mapping element from the key."},"id":4652,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4909:13:34","nodeType":"FunctionDefinition","parameters":{"id":4646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4643,"mutability":"mutable","name":"slot","nameLocation":"4931:4:34","nodeType":"VariableDeclaration","scope":4652,"src":"4923:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4923:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4645,"mutability":"mutable","name":"key","nameLocation":"4950:3:34","nodeType":"VariableDeclaration","scope":4652,"src":"4937:16:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4644,"name":"bytes","nodeType":"ElementaryTypeName","src":"4937:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4922:32:34"},"returnParameters":{"id":4649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4648,"mutability":"mutable","name":"result","nameLocation":"4986:6:34","nodeType":"VariableDeclaration","scope":4652,"src":"4978:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4978:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4977:16:34"},"scope":4653,"src":"4900:420:34","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4654,"src":"1599:3723:34","usedErrors":[],"usedEvents":[]}],"src":"199:5124:34"},"id":34},"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[4777]},"id":4778,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4655,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"193:24:35"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":4656,"nodeType":"StructuredDocumentation","src":"219:1187:35","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(newImplementation.code.length > 0);\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":4777,"linearizedBaseContracts":[4777],"name":"StorageSlot","nameLocation":"1415:11:35","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":4659,"members":[{"constant":false,"id":4658,"mutability":"mutable","name":"value","nameLocation":"1470:5:35","nodeType":"VariableDeclaration","scope":4659,"src":"1462:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4657,"name":"address","nodeType":"ElementaryTypeName","src":"1462:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1440:11:35","nodeType":"StructDefinition","scope":4777,"src":"1433:49:35","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":4662,"members":[{"constant":false,"id":4661,"mutability":"mutable","name":"value","nameLocation":"1522:5:35","nodeType":"VariableDeclaration","scope":4662,"src":"1517:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4660,"name":"bool","nodeType":"ElementaryTypeName","src":"1517:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1495:11:35","nodeType":"StructDefinition","scope":4777,"src":"1488:46:35","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":4665,"members":[{"constant":false,"id":4664,"mutability":"mutable","name":"value","nameLocation":"1577:5:35","nodeType":"VariableDeclaration","scope":4665,"src":"1569:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1569:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1547:11:35","nodeType":"StructDefinition","scope":4777,"src":"1540:49:35","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":4668,"members":[{"constant":false,"id":4667,"mutability":"mutable","name":"value","nameLocation":"1632:5:35","nodeType":"VariableDeclaration","scope":4668,"src":"1624:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1602:11:35","nodeType":"StructDefinition","scope":4777,"src":"1595:49:35","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":4671,"members":[{"constant":false,"id":4670,"mutability":"mutable","name":"value","nameLocation":"1685:5:35","nodeType":"VariableDeclaration","scope":4671,"src":"1678:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4669,"name":"int256","nodeType":"ElementaryTypeName","src":"1678:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"1657:10:35","nodeType":"StructDefinition","scope":4777,"src":"1650:47:35","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":4674,"members":[{"constant":false,"id":4673,"mutability":"mutable","name":"value","nameLocation":"1738:5:35","nodeType":"VariableDeclaration","scope":4674,"src":"1731:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4672,"name":"string","nodeType":"ElementaryTypeName","src":"1731:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1710:10:35","nodeType":"StructDefinition","scope":4777,"src":"1703:47:35","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":4677,"members":[{"constant":false,"id":4676,"mutability":"mutable","name":"value","nameLocation":"1789:5:35","nodeType":"VariableDeclaration","scope":4677,"src":"1783:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4675,"name":"bytes","nodeType":"ElementaryTypeName","src":"1783:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1763:9:35","nodeType":"StructDefinition","scope":4777,"src":"1756:45:35","visibility":"public"},{"body":{"id":4687,"nodeType":"Block","src":"1983:79:35","statements":[{"AST":{"nativeSrc":"2018:38:35","nodeType":"YulBlock","src":"2018:38:35","statements":[{"nativeSrc":"2032:14:35","nodeType":"YulAssignment","src":"2032:14:35","value":{"name":"slot","nativeSrc":"2042:4:35","nodeType":"YulIdentifier","src":"2042:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2032:6:35","nodeType":"YulIdentifier","src":"2032:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4684,"isOffset":false,"isSlot":true,"src":"2032:6:35","suffix":"slot","valueSize":1},{"declaration":4680,"isOffset":false,"isSlot":false,"src":"2042:4:35","valueSize":1}],"flags":["memory-safe"],"id":4686,"nodeType":"InlineAssembly","src":"1993:63:35"}]},"documentation":{"id":4678,"nodeType":"StructuredDocumentation","src":"1807:87:35","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":4688,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1908:14:35","nodeType":"FunctionDefinition","parameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4680,"mutability":"mutable","name":"slot","nameLocation":"1931:4:35","nodeType":"VariableDeclaration","scope":4688,"src":"1923:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1922:14:35"},"returnParameters":{"id":4685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4684,"mutability":"mutable","name":"r","nameLocation":"1980:1:35","nodeType":"VariableDeclaration","scope":4688,"src":"1960:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$4659_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":4683,"nodeType":"UserDefinedTypeName","pathNode":{"id":4682,"name":"AddressSlot","nameLocations":["1960:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":4659,"src":"1960:11:35"},"referencedDeclaration":4659,"src":"1960:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$4659_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1959:23:35"},"scope":4777,"src":"1899:163:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4698,"nodeType":"Block","src":"2243:79:35","statements":[{"AST":{"nativeSrc":"2278:38:35","nodeType":"YulBlock","src":"2278:38:35","statements":[{"nativeSrc":"2292:14:35","nodeType":"YulAssignment","src":"2292:14:35","value":{"name":"slot","nativeSrc":"2302:4:35","nodeType":"YulIdentifier","src":"2302:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2292:6:35","nodeType":"YulIdentifier","src":"2292:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4695,"isOffset":false,"isSlot":true,"src":"2292:6:35","suffix":"slot","valueSize":1},{"declaration":4691,"isOffset":false,"isSlot":false,"src":"2302:4:35","valueSize":1}],"flags":["memory-safe"],"id":4697,"nodeType":"InlineAssembly","src":"2253:63:35"}]},"documentation":{"id":4689,"nodeType":"StructuredDocumentation","src":"2068:86:35","text":" @dev Returns a `BooleanSlot` with member `value` located at `slot`."},"id":4699,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2168:14:35","nodeType":"FunctionDefinition","parameters":{"id":4692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4691,"mutability":"mutable","name":"slot","nameLocation":"2191:4:35","nodeType":"VariableDeclaration","scope":4699,"src":"2183:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2183:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2182:14:35"},"returnParameters":{"id":4696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4695,"mutability":"mutable","name":"r","nameLocation":"2240:1:35","nodeType":"VariableDeclaration","scope":4699,"src":"2220:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$4662_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":4694,"nodeType":"UserDefinedTypeName","pathNode":{"id":4693,"name":"BooleanSlot","nameLocations":["2220:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":4662,"src":"2220:11:35"},"referencedDeclaration":4662,"src":"2220:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$4662_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2219:23:35"},"scope":4777,"src":"2159:163:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4709,"nodeType":"Block","src":"2503:79:35","statements":[{"AST":{"nativeSrc":"2538:38:35","nodeType":"YulBlock","src":"2538:38:35","statements":[{"nativeSrc":"2552:14:35","nodeType":"YulAssignment","src":"2552:14:35","value":{"name":"slot","nativeSrc":"2562:4:35","nodeType":"YulIdentifier","src":"2562:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2552:6:35","nodeType":"YulIdentifier","src":"2552:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4706,"isOffset":false,"isSlot":true,"src":"2552:6:35","suffix":"slot","valueSize":1},{"declaration":4702,"isOffset":false,"isSlot":false,"src":"2562:4:35","valueSize":1}],"flags":["memory-safe"],"id":4708,"nodeType":"InlineAssembly","src":"2513:63:35"}]},"documentation":{"id":4700,"nodeType":"StructuredDocumentation","src":"2328:86:35","text":" @dev Returns a `Bytes32Slot` with member `value` located at `slot`."},"id":4710,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2428:14:35","nodeType":"FunctionDefinition","parameters":{"id":4703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4702,"mutability":"mutable","name":"slot","nameLocation":"2451:4:35","nodeType":"VariableDeclaration","scope":4710,"src":"2443:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2443:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2442:14:35"},"returnParameters":{"id":4707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4706,"mutability":"mutable","name":"r","nameLocation":"2500:1:35","nodeType":"VariableDeclaration","scope":4710,"src":"2480:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":4705,"nodeType":"UserDefinedTypeName","pathNode":{"id":4704,"name":"Bytes32Slot","nameLocations":["2480:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":4665,"src":"2480:11:35"},"referencedDeclaration":4665,"src":"2480:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2479:23:35"},"scope":4777,"src":"2419:163:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4720,"nodeType":"Block","src":"2763:79:35","statements":[{"AST":{"nativeSrc":"2798:38:35","nodeType":"YulBlock","src":"2798:38:35","statements":[{"nativeSrc":"2812:14:35","nodeType":"YulAssignment","src":"2812:14:35","value":{"name":"slot","nativeSrc":"2822:4:35","nodeType":"YulIdentifier","src":"2822:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2812:6:35","nodeType":"YulIdentifier","src":"2812:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4717,"isOffset":false,"isSlot":true,"src":"2812:6:35","suffix":"slot","valueSize":1},{"declaration":4713,"isOffset":false,"isSlot":false,"src":"2822:4:35","valueSize":1}],"flags":["memory-safe"],"id":4719,"nodeType":"InlineAssembly","src":"2773:63:35"}]},"documentation":{"id":4711,"nodeType":"StructuredDocumentation","src":"2588:86:35","text":" @dev Returns a `Uint256Slot` with member `value` located at `slot`."},"id":4721,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2688:14:35","nodeType":"FunctionDefinition","parameters":{"id":4714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4713,"mutability":"mutable","name":"slot","nameLocation":"2711:4:35","nodeType":"VariableDeclaration","scope":4721,"src":"2703:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2703:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2702:14:35"},"returnParameters":{"id":4718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4717,"mutability":"mutable","name":"r","nameLocation":"2760:1:35","nodeType":"VariableDeclaration","scope":4721,"src":"2740:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":4716,"nodeType":"UserDefinedTypeName","pathNode":{"id":4715,"name":"Uint256Slot","nameLocations":["2740:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":4668,"src":"2740:11:35"},"referencedDeclaration":4668,"src":"2740:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$4668_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2739:23:35"},"scope":4777,"src":"2679:163:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4731,"nodeType":"Block","src":"3020:79:35","statements":[{"AST":{"nativeSrc":"3055:38:35","nodeType":"YulBlock","src":"3055:38:35","statements":[{"nativeSrc":"3069:14:35","nodeType":"YulAssignment","src":"3069:14:35","value":{"name":"slot","nativeSrc":"3079:4:35","nodeType":"YulIdentifier","src":"3079:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"3069:6:35","nodeType":"YulIdentifier","src":"3069:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4728,"isOffset":false,"isSlot":true,"src":"3069:6:35","suffix":"slot","valueSize":1},{"declaration":4724,"isOffset":false,"isSlot":false,"src":"3079:4:35","valueSize":1}],"flags":["memory-safe"],"id":4730,"nodeType":"InlineAssembly","src":"3030:63:35"}]},"documentation":{"id":4722,"nodeType":"StructuredDocumentation","src":"2848:85:35","text":" @dev Returns a `Int256Slot` with member `value` located at `slot`."},"id":4732,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"2947:13:35","nodeType":"FunctionDefinition","parameters":{"id":4725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4724,"mutability":"mutable","name":"slot","nameLocation":"2969:4:35","nodeType":"VariableDeclaration","scope":4732,"src":"2961:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2961:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2960:14:35"},"returnParameters":{"id":4729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4728,"mutability":"mutable","name":"r","nameLocation":"3017:1:35","nodeType":"VariableDeclaration","scope":4732,"src":"2998:20:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$4671_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":4727,"nodeType":"UserDefinedTypeName","pathNode":{"id":4726,"name":"Int256Slot","nameLocations":["2998:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":4671,"src":"2998:10:35"},"referencedDeclaration":4671,"src":"2998:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$4671_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"2997:22:35"},"scope":4777,"src":"2938:161:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4742,"nodeType":"Block","src":"3277:79:35","statements":[{"AST":{"nativeSrc":"3312:38:35","nodeType":"YulBlock","src":"3312:38:35","statements":[{"nativeSrc":"3326:14:35","nodeType":"YulAssignment","src":"3326:14:35","value":{"name":"slot","nativeSrc":"3336:4:35","nodeType":"YulIdentifier","src":"3336:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"3326:6:35","nodeType":"YulIdentifier","src":"3326:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4739,"isOffset":false,"isSlot":true,"src":"3326:6:35","suffix":"slot","valueSize":1},{"declaration":4735,"isOffset":false,"isSlot":false,"src":"3336:4:35","valueSize":1}],"flags":["memory-safe"],"id":4741,"nodeType":"InlineAssembly","src":"3287:63:35"}]},"documentation":{"id":4733,"nodeType":"StructuredDocumentation","src":"3105:85:35","text":" @dev Returns a `StringSlot` with member `value` located at `slot`."},"id":4743,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3204:13:35","nodeType":"FunctionDefinition","parameters":{"id":4736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4735,"mutability":"mutable","name":"slot","nameLocation":"3226:4:35","nodeType":"VariableDeclaration","scope":4743,"src":"3218:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3218:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3217:14:35"},"returnParameters":{"id":4740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4739,"mutability":"mutable","name":"r","nameLocation":"3274:1:35","nodeType":"VariableDeclaration","scope":4743,"src":"3255:20:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":4738,"nodeType":"UserDefinedTypeName","pathNode":{"id":4737,"name":"StringSlot","nameLocations":["3255:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":4674,"src":"3255:10:35"},"referencedDeclaration":4674,"src":"3255:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3254:22:35"},"scope":4777,"src":"3195:161:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4753,"nodeType":"Block","src":"3558:85:35","statements":[{"AST":{"nativeSrc":"3593:44:35","nodeType":"YulBlock","src":"3593:44:35","statements":[{"nativeSrc":"3607:20:35","nodeType":"YulAssignment","src":"3607:20:35","value":{"name":"store.slot","nativeSrc":"3617:10:35","nodeType":"YulIdentifier","src":"3617:10:35"},"variableNames":[{"name":"r.slot","nativeSrc":"3607:6:35","nodeType":"YulIdentifier","src":"3607:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4750,"isOffset":false,"isSlot":true,"src":"3607:6:35","suffix":"slot","valueSize":1},{"declaration":4746,"isOffset":false,"isSlot":true,"src":"3617:10:35","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":4752,"nodeType":"InlineAssembly","src":"3568:69:35"}]},"documentation":{"id":4744,"nodeType":"StructuredDocumentation","src":"3362:101:35","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":4754,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3477:13:35","nodeType":"FunctionDefinition","parameters":{"id":4747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4746,"mutability":"mutable","name":"store","nameLocation":"3506:5:35","nodeType":"VariableDeclaration","scope":4754,"src":"3491:20:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4745,"name":"string","nodeType":"ElementaryTypeName","src":"3491:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3490:22:35"},"returnParameters":{"id":4751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4750,"mutability":"mutable","name":"r","nameLocation":"3555:1:35","nodeType":"VariableDeclaration","scope":4754,"src":"3536:20:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":4749,"nodeType":"UserDefinedTypeName","pathNode":{"id":4748,"name":"StringSlot","nameLocations":["3536:10:35"],"nodeType":"IdentifierPath","referencedDeclaration":4674,"src":"3536:10:35"},"referencedDeclaration":4674,"src":"3536:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3535:22:35"},"scope":4777,"src":"3468:175:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4764,"nodeType":"Block","src":"3818:79:35","statements":[{"AST":{"nativeSrc":"3853:38:35","nodeType":"YulBlock","src":"3853:38:35","statements":[{"nativeSrc":"3867:14:35","nodeType":"YulAssignment","src":"3867:14:35","value":{"name":"slot","nativeSrc":"3877:4:35","nodeType":"YulIdentifier","src":"3877:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"3867:6:35","nodeType":"YulIdentifier","src":"3867:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4761,"isOffset":false,"isSlot":true,"src":"3867:6:35","suffix":"slot","valueSize":1},{"declaration":4757,"isOffset":false,"isSlot":false,"src":"3877:4:35","valueSize":1}],"flags":["memory-safe"],"id":4763,"nodeType":"InlineAssembly","src":"3828:63:35"}]},"documentation":{"id":4755,"nodeType":"StructuredDocumentation","src":"3649:84:35","text":" @dev Returns a `BytesSlot` with member `value` located at `slot`."},"id":4765,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3747:12:35","nodeType":"FunctionDefinition","parameters":{"id":4758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4757,"mutability":"mutable","name":"slot","nameLocation":"3768:4:35","nodeType":"VariableDeclaration","scope":4765,"src":"3760:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3760:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3759:14:35"},"returnParameters":{"id":4762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4761,"mutability":"mutable","name":"r","nameLocation":"3815:1:35","nodeType":"VariableDeclaration","scope":4765,"src":"3797:19:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":4760,"nodeType":"UserDefinedTypeName","pathNode":{"id":4759,"name":"BytesSlot","nameLocations":["3797:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":4677,"src":"3797:9:35"},"referencedDeclaration":4677,"src":"3797:9:35","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3796:21:35"},"scope":4777,"src":"3738:159:35","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4775,"nodeType":"Block","src":"4094:85:35","statements":[{"AST":{"nativeSrc":"4129:44:35","nodeType":"YulBlock","src":"4129:44:35","statements":[{"nativeSrc":"4143:20:35","nodeType":"YulAssignment","src":"4143:20:35","value":{"name":"store.slot","nativeSrc":"4153:10:35","nodeType":"YulIdentifier","src":"4153:10:35"},"variableNames":[{"name":"r.slot","nativeSrc":"4143:6:35","nodeType":"YulIdentifier","src":"4143:6:35"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4772,"isOffset":false,"isSlot":true,"src":"4143:6:35","suffix":"slot","valueSize":1},{"declaration":4768,"isOffset":false,"isSlot":true,"src":"4153:10:35","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":4774,"nodeType":"InlineAssembly","src":"4104:69:35"}]},"documentation":{"id":4766,"nodeType":"StructuredDocumentation","src":"3903:99:35","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":4776,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4016:12:35","nodeType":"FunctionDefinition","parameters":{"id":4769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4768,"mutability":"mutable","name":"store","nameLocation":"4043:5:35","nodeType":"VariableDeclaration","scope":4776,"src":"4029:19:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4767,"name":"bytes","nodeType":"ElementaryTypeName","src":"4029:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4028:21:35"},"returnParameters":{"id":4773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4772,"mutability":"mutable","name":"r","nameLocation":"4091:1:35","nodeType":"VariableDeclaration","scope":4776,"src":"4073:19:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":4771,"nodeType":"UserDefinedTypeName","pathNode":{"id":4770,"name":"BytesSlot","nameLocations":["4073:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":4677,"src":"4073:9:35"},"referencedDeclaration":4677,"src":"4073:9:35","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4072:21:35"},"scope":4777,"src":"4007:172:35","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4778,"src":"1407:2774:35","usedErrors":[],"usedEvents":[]}],"src":"193:3989:35"},"id":35},"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/TransientSlot.sol","exportedSymbols":{"TransientSlot":[4976]},"id":4977,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4779,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"197:24:36"},{"abstract":false,"baseContracts":[],"canonicalName":"TransientSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":4780,"nodeType":"StructuredDocumentation","src":"223:939:36","text":" @dev Library for reading and writing value-types to specific transient storage slots.\n Transient slots are often used to store temporary values that are removed after the current transaction.\n This library helps with reading and writing to such slots without the need for inline assembly.\n  * Example reading and writing values using transient storage:\n ```solidity\n contract Lock {\n     using TransientSlot for *;\n     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n     bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n     modifier locked() {\n         require(!_LOCK_SLOT.asBoolean().tload());\n         _LOCK_SLOT.asBoolean().tstore(true);\n         _;\n         _LOCK_SLOT.asBoolean().tstore(false);\n     }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":4976,"linearizedBaseContracts":[4976],"name":"TransientSlot","nameLocation":"1171:13:36","nodeType":"ContractDefinition","nodes":[{"canonicalName":"TransientSlot.AddressSlot","id":4782,"name":"AddressSlot","nameLocation":"1272:11:36","nodeType":"UserDefinedValueTypeDefinition","src":"1267:28:36","underlyingType":{"id":4781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1287:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":4796,"nodeType":"Block","src":"1439:46:36","statements":[{"expression":{"arguments":[{"id":4793,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4785,"src":"1473:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4791,"name":"AddressSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4782,"src":"1456:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_AddressSlot_$4782_$","typeString":"type(TransientSlot.AddressSlot)"}},"id":4792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1468:4:36","memberName":"wrap","nodeType":"MemberAccess","src":"1456:16:36","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_AddressSlot_$4782_$","typeString":"function (bytes32) pure returns (TransientSlot.AddressSlot)"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1456:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"}},"functionReturnParameters":4790,"id":4795,"nodeType":"Return","src":"1449:29:36"}]},"documentation":{"id":4783,"nodeType":"StructuredDocumentation","src":"1301:64:36","text":" @dev Cast an arbitrary slot to a AddressSlot."},"id":4797,"implemented":true,"kind":"function","modifiers":[],"name":"asAddress","nameLocation":"1379:9:36","nodeType":"FunctionDefinition","parameters":{"id":4786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4785,"mutability":"mutable","name":"slot","nameLocation":"1397:4:36","nodeType":"VariableDeclaration","scope":4797,"src":"1389:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1389:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1388:14:36"},"returnParameters":{"id":4790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4797,"src":"1426:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"},"typeName":{"id":4788,"nodeType":"UserDefinedTypeName","pathNode":{"id":4787,"name":"AddressSlot","nameLocations":["1426:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4782,"src":"1426:11:36"},"referencedDeclaration":4782,"src":"1426:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"}},"visibility":"internal"}],"src":"1425:13:36"},"scope":4976,"src":"1370:115:36","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"TransientSlot.BooleanSlot","id":4799,"name":"BooleanSlot","nameLocation":"1568:11:36","nodeType":"UserDefinedValueTypeDefinition","src":"1563:28:36","underlyingType":{"id":4798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1583:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":4813,"nodeType":"Block","src":"1735:46:36","statements":[{"expression":{"arguments":[{"id":4810,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4802,"src":"1769:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4808,"name":"BooleanSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4799,"src":"1752:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BooleanSlot_$4799_$","typeString":"type(TransientSlot.BooleanSlot)"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1764:4:36","memberName":"wrap","nodeType":"MemberAccess","src":"1752:16:36","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$4799_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":4811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1752:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"functionReturnParameters":4807,"id":4812,"nodeType":"Return","src":"1745:29:36"}]},"documentation":{"id":4800,"nodeType":"StructuredDocumentation","src":"1597:64:36","text":" @dev Cast an arbitrary slot to a BooleanSlot."},"id":4814,"implemented":true,"kind":"function","modifiers":[],"name":"asBoolean","nameLocation":"1675:9:36","nodeType":"FunctionDefinition","parameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4802,"mutability":"mutable","name":"slot","nameLocation":"1693:4:36","nodeType":"VariableDeclaration","scope":4814,"src":"1685:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1685:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1684:14:36"},"returnParameters":{"id":4807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4814,"src":"1722:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"},"typeName":{"id":4805,"nodeType":"UserDefinedTypeName","pathNode":{"id":4804,"name":"BooleanSlot","nameLocations":["1722:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4799,"src":"1722:11:36"},"referencedDeclaration":4799,"src":"1722:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1721:13:36"},"scope":4976,"src":"1666:115:36","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"TransientSlot.Bytes32Slot","id":4816,"name":"Bytes32Slot","nameLocation":"1867:11:36","nodeType":"UserDefinedValueTypeDefinition","src":"1862:28:36","underlyingType":{"id":4815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1882:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":4830,"nodeType":"Block","src":"2034:46:36","statements":[{"expression":{"arguments":[{"id":4827,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"2068:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4825,"name":"Bytes32Slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4816,"src":"2051:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Bytes32Slot_$4816_$","typeString":"type(TransientSlot.Bytes32Slot)"}},"id":4826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2063:4:36","memberName":"wrap","nodeType":"MemberAccess","src":"2051:16:36","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Bytes32Slot_$4816_$","typeString":"function (bytes32) pure returns (TransientSlot.Bytes32Slot)"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2051:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"}},"functionReturnParameters":4824,"id":4829,"nodeType":"Return","src":"2044:29:36"}]},"documentation":{"id":4817,"nodeType":"StructuredDocumentation","src":"1896:64:36","text":" @dev Cast an arbitrary slot to a Bytes32Slot."},"id":4831,"implemented":true,"kind":"function","modifiers":[],"name":"asBytes32","nameLocation":"1974:9:36","nodeType":"FunctionDefinition","parameters":{"id":4820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4819,"mutability":"mutable","name":"slot","nameLocation":"1992:4:36","nodeType":"VariableDeclaration","scope":4831,"src":"1984:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1984:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1983:14:36"},"returnParameters":{"id":4824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4823,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4831,"src":"2021:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"},"typeName":{"id":4822,"nodeType":"UserDefinedTypeName","pathNode":{"id":4821,"name":"Bytes32Slot","nameLocations":["2021:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4816,"src":"2021:11:36"},"referencedDeclaration":4816,"src":"2021:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2020:13:36"},"scope":4976,"src":"1965:115:36","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"TransientSlot.Uint256Slot","id":4833,"name":"Uint256Slot","nameLocation":"2166:11:36","nodeType":"UserDefinedValueTypeDefinition","src":"2161:28:36","underlyingType":{"id":4832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2181:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":4847,"nodeType":"Block","src":"2333:46:36","statements":[{"expression":{"arguments":[{"id":4844,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"2367:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4842,"name":"Uint256Slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4833,"src":"2350:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Uint256Slot_$4833_$","typeString":"type(TransientSlot.Uint256Slot)"}},"id":4843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2362:4:36","memberName":"wrap","nodeType":"MemberAccess","src":"2350:16:36","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Uint256Slot_$4833_$","typeString":"function (bytes32) pure returns (TransientSlot.Uint256Slot)"}},"id":4845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2350:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"}},"functionReturnParameters":4841,"id":4846,"nodeType":"Return","src":"2343:29:36"}]},"documentation":{"id":4834,"nodeType":"StructuredDocumentation","src":"2195:64:36","text":" @dev Cast an arbitrary slot to a Uint256Slot."},"id":4848,"implemented":true,"kind":"function","modifiers":[],"name":"asUint256","nameLocation":"2273:9:36","nodeType":"FunctionDefinition","parameters":{"id":4837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4836,"mutability":"mutable","name":"slot","nameLocation":"2291:4:36","nodeType":"VariableDeclaration","scope":4848,"src":"2283:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2283:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2282:14:36"},"returnParameters":{"id":4841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4848,"src":"2320:11:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"},"typeName":{"id":4839,"nodeType":"UserDefinedTypeName","pathNode":{"id":4838,"name":"Uint256Slot","nameLocations":["2320:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4833,"src":"2320:11:36"},"referencedDeclaration":4833,"src":"2320:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2319:13:36"},"scope":4976,"src":"2264:115:36","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"TransientSlot.Int256Slot","id":4850,"name":"Int256Slot","nameLocation":"2464:10:36","nodeType":"UserDefinedValueTypeDefinition","src":"2459:27:36","underlyingType":{"id":4849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2478:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":4864,"nodeType":"Block","src":"2627:45:36","statements":[{"expression":{"arguments":[{"id":4861,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4853,"src":"2660:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":4859,"name":"Int256Slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"2644:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Int256Slot_$4850_$","typeString":"type(TransientSlot.Int256Slot)"}},"id":4860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2655:4:36","memberName":"wrap","nodeType":"MemberAccess","src":"2644:15:36","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Int256Slot_$4850_$","typeString":"function (bytes32) pure returns (TransientSlot.Int256Slot)"}},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"}},"functionReturnParameters":4858,"id":4863,"nodeType":"Return","src":"2637:28:36"}]},"documentation":{"id":4851,"nodeType":"StructuredDocumentation","src":"2492:63:36","text":" @dev Cast an arbitrary slot to a Int256Slot."},"id":4865,"implemented":true,"kind":"function","modifiers":[],"name":"asInt256","nameLocation":"2569:8:36","nodeType":"FunctionDefinition","parameters":{"id":4854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"mutability":"mutable","name":"slot","nameLocation":"2586:4:36","nodeType":"VariableDeclaration","scope":4865,"src":"2578:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2578:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2577:14:36"},"returnParameters":{"id":4858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4865,"src":"2615:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"},"typeName":{"id":4856,"nodeType":"UserDefinedTypeName","pathNode":{"id":4855,"name":"Int256Slot","nameLocations":["2615:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":4850,"src":"2615:10:36"},"referencedDeclaration":4850,"src":"2615:10:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"}},"visibility":"internal"}],"src":"2614:12:36"},"scope":4976,"src":"2560:112:36","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4875,"nodeType":"Block","src":"2838:85:36","statements":[{"AST":{"nativeSrc":"2873:44:36","nodeType":"YulBlock","src":"2873:44:36","statements":[{"nativeSrc":"2887:20:36","nodeType":"YulAssignment","src":"2887:20:36","value":{"arguments":[{"name":"slot","nativeSrc":"2902:4:36","nodeType":"YulIdentifier","src":"2902:4:36"}],"functionName":{"name":"tload","nativeSrc":"2896:5:36","nodeType":"YulIdentifier","src":"2896:5:36"},"nativeSrc":"2896:11:36","nodeType":"YulFunctionCall","src":"2896:11:36"},"variableNames":[{"name":"value","nativeSrc":"2887:5:36","nodeType":"YulIdentifier","src":"2887:5:36"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4869,"isOffset":false,"isSlot":false,"src":"2902:4:36","valueSize":1},{"declaration":4872,"isOffset":false,"isSlot":false,"src":"2887:5:36","valueSize":1}],"flags":["memory-safe"],"id":4874,"nodeType":"InlineAssembly","src":"2848:69:36"}]},"documentation":{"id":4866,"nodeType":"StructuredDocumentation","src":"2678:84:36","text":" @dev Load the value held at location `slot` in transient storage."},"id":4876,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"2776:5:36","nodeType":"FunctionDefinition","parameters":{"id":4870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4869,"mutability":"mutable","name":"slot","nameLocation":"2794:4:36","nodeType":"VariableDeclaration","scope":4876,"src":"2782:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"},"typeName":{"id":4868,"nodeType":"UserDefinedTypeName","pathNode":{"id":4867,"name":"AddressSlot","nameLocations":["2782:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4782,"src":"2782:11:36"},"referencedDeclaration":4782,"src":"2782:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"}},"visibility":"internal"}],"src":"2781:18:36"},"returnParameters":{"id":4873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4872,"mutability":"mutable","name":"value","nameLocation":"2831:5:36","nodeType":"VariableDeclaration","scope":4876,"src":"2823:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4871,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2822:15:36"},"scope":4976,"src":"2767:156:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4886,"nodeType":"Block","src":"3070:84:36","statements":[{"AST":{"nativeSrc":"3105:43:36","nodeType":"YulBlock","src":"3105:43:36","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"3126:4:36","nodeType":"YulIdentifier","src":"3126:4:36"},{"name":"value","nativeSrc":"3132:5:36","nodeType":"YulIdentifier","src":"3132:5:36"}],"functionName":{"name":"tstore","nativeSrc":"3119:6:36","nodeType":"YulIdentifier","src":"3119:6:36"},"nativeSrc":"3119:19:36","nodeType":"YulFunctionCall","src":"3119:19:36"},"nativeSrc":"3119:19:36","nodeType":"YulExpressionStatement","src":"3119:19:36"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4880,"isOffset":false,"isSlot":false,"src":"3126:4:36","valueSize":1},{"declaration":4882,"isOffset":false,"isSlot":false,"src":"3132:5:36","valueSize":1}],"flags":["memory-safe"],"id":4885,"nodeType":"InlineAssembly","src":"3080:68:36"}]},"documentation":{"id":4877,"nodeType":"StructuredDocumentation","src":"2929:78:36","text":" @dev Store `value` at location `slot` in transient storage."},"id":4887,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"3021:6:36","nodeType":"FunctionDefinition","parameters":{"id":4883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4880,"mutability":"mutable","name":"slot","nameLocation":"3040:4:36","nodeType":"VariableDeclaration","scope":4887,"src":"3028:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"},"typeName":{"id":4879,"nodeType":"UserDefinedTypeName","pathNode":{"id":4878,"name":"AddressSlot","nameLocations":["3028:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4782,"src":"3028:11:36"},"referencedDeclaration":4782,"src":"3028:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlot_$4782","typeString":"TransientSlot.AddressSlot"}},"visibility":"internal"},{"constant":false,"id":4882,"mutability":"mutable","name":"value","nameLocation":"3054:5:36","nodeType":"VariableDeclaration","scope":4887,"src":"3046:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4881,"name":"address","nodeType":"ElementaryTypeName","src":"3046:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3027:33:36"},"returnParameters":{"id":4884,"nodeType":"ParameterList","parameters":[],"src":"3070:0:36"},"scope":4976,"src":"3012:142:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4897,"nodeType":"Block","src":"3317:85:36","statements":[{"AST":{"nativeSrc":"3352:44:36","nodeType":"YulBlock","src":"3352:44:36","statements":[{"nativeSrc":"3366:20:36","nodeType":"YulAssignment","src":"3366:20:36","value":{"arguments":[{"name":"slot","nativeSrc":"3381:4:36","nodeType":"YulIdentifier","src":"3381:4:36"}],"functionName":{"name":"tload","nativeSrc":"3375:5:36","nodeType":"YulIdentifier","src":"3375:5:36"},"nativeSrc":"3375:11:36","nodeType":"YulFunctionCall","src":"3375:11:36"},"variableNames":[{"name":"value","nativeSrc":"3366:5:36","nodeType":"YulIdentifier","src":"3366:5:36"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4891,"isOffset":false,"isSlot":false,"src":"3381:4:36","valueSize":1},{"declaration":4894,"isOffset":false,"isSlot":false,"src":"3366:5:36","valueSize":1}],"flags":["memory-safe"],"id":4896,"nodeType":"InlineAssembly","src":"3327:69:36"}]},"documentation":{"id":4888,"nodeType":"StructuredDocumentation","src":"3160:84:36","text":" @dev Load the value held at location `slot` in transient storage."},"id":4898,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"3258:5:36","nodeType":"FunctionDefinition","parameters":{"id":4892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4891,"mutability":"mutable","name":"slot","nameLocation":"3276:4:36","nodeType":"VariableDeclaration","scope":4898,"src":"3264:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"},"typeName":{"id":4890,"nodeType":"UserDefinedTypeName","pathNode":{"id":4889,"name":"BooleanSlot","nameLocations":["3264:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4799,"src":"3264:11:36"},"referencedDeclaration":4799,"src":"3264:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"visibility":"internal"}],"src":"3263:18:36"},"returnParameters":{"id":4895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4894,"mutability":"mutable","name":"value","nameLocation":"3310:5:36","nodeType":"VariableDeclaration","scope":4898,"src":"3305:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4893,"name":"bool","nodeType":"ElementaryTypeName","src":"3305:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3304:12:36"},"scope":4976,"src":"3249:153:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4908,"nodeType":"Block","src":"3546:84:36","statements":[{"AST":{"nativeSrc":"3581:43:36","nodeType":"YulBlock","src":"3581:43:36","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"3602:4:36","nodeType":"YulIdentifier","src":"3602:4:36"},{"name":"value","nativeSrc":"3608:5:36","nodeType":"YulIdentifier","src":"3608:5:36"}],"functionName":{"name":"tstore","nativeSrc":"3595:6:36","nodeType":"YulIdentifier","src":"3595:6:36"},"nativeSrc":"3595:19:36","nodeType":"YulFunctionCall","src":"3595:19:36"},"nativeSrc":"3595:19:36","nodeType":"YulExpressionStatement","src":"3595:19:36"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4902,"isOffset":false,"isSlot":false,"src":"3602:4:36","valueSize":1},{"declaration":4904,"isOffset":false,"isSlot":false,"src":"3608:5:36","valueSize":1}],"flags":["memory-safe"],"id":4907,"nodeType":"InlineAssembly","src":"3556:68:36"}]},"documentation":{"id":4899,"nodeType":"StructuredDocumentation","src":"3408:78:36","text":" @dev Store `value` at location `slot` in transient storage."},"id":4909,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"3500:6:36","nodeType":"FunctionDefinition","parameters":{"id":4905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4902,"mutability":"mutable","name":"slot","nameLocation":"3519:4:36","nodeType":"VariableDeclaration","scope":4909,"src":"3507:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"},"typeName":{"id":4901,"nodeType":"UserDefinedTypeName","pathNode":{"id":4900,"name":"BooleanSlot","nameLocations":["3507:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4799,"src":"3507:11:36"},"referencedDeclaration":4799,"src":"3507:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$4799","typeString":"TransientSlot.BooleanSlot"}},"visibility":"internal"},{"constant":false,"id":4904,"mutability":"mutable","name":"value","nameLocation":"3530:5:36","nodeType":"VariableDeclaration","scope":4909,"src":"3525:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4903,"name":"bool","nodeType":"ElementaryTypeName","src":"3525:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3506:30:36"},"returnParameters":{"id":4906,"nodeType":"ParameterList","parameters":[],"src":"3546:0:36"},"scope":4976,"src":"3491:139:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4919,"nodeType":"Block","src":"3796:85:36","statements":[{"AST":{"nativeSrc":"3831:44:36","nodeType":"YulBlock","src":"3831:44:36","statements":[{"nativeSrc":"3845:20:36","nodeType":"YulAssignment","src":"3845:20:36","value":{"arguments":[{"name":"slot","nativeSrc":"3860:4:36","nodeType":"YulIdentifier","src":"3860:4:36"}],"functionName":{"name":"tload","nativeSrc":"3854:5:36","nodeType":"YulIdentifier","src":"3854:5:36"},"nativeSrc":"3854:11:36","nodeType":"YulFunctionCall","src":"3854:11:36"},"variableNames":[{"name":"value","nativeSrc":"3845:5:36","nodeType":"YulIdentifier","src":"3845:5:36"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4913,"isOffset":false,"isSlot":false,"src":"3860:4:36","valueSize":1},{"declaration":4916,"isOffset":false,"isSlot":false,"src":"3845:5:36","valueSize":1}],"flags":["memory-safe"],"id":4918,"nodeType":"InlineAssembly","src":"3806:69:36"}]},"documentation":{"id":4910,"nodeType":"StructuredDocumentation","src":"3636:84:36","text":" @dev Load the value held at location `slot` in transient storage."},"id":4920,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"3734:5:36","nodeType":"FunctionDefinition","parameters":{"id":4914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4913,"mutability":"mutable","name":"slot","nameLocation":"3752:4:36","nodeType":"VariableDeclaration","scope":4920,"src":"3740:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"},"typeName":{"id":4912,"nodeType":"UserDefinedTypeName","pathNode":{"id":4911,"name":"Bytes32Slot","nameLocations":["3740:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4816,"src":"3740:11:36"},"referencedDeclaration":4816,"src":"3740:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"3739:18:36"},"returnParameters":{"id":4917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4916,"mutability":"mutable","name":"value","nameLocation":"3789:5:36","nodeType":"VariableDeclaration","scope":4920,"src":"3781:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3781:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3780:15:36"},"scope":4976,"src":"3725:156:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4930,"nodeType":"Block","src":"4028:84:36","statements":[{"AST":{"nativeSrc":"4063:43:36","nodeType":"YulBlock","src":"4063:43:36","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"4084:4:36","nodeType":"YulIdentifier","src":"4084:4:36"},{"name":"value","nativeSrc":"4090:5:36","nodeType":"YulIdentifier","src":"4090:5:36"}],"functionName":{"name":"tstore","nativeSrc":"4077:6:36","nodeType":"YulIdentifier","src":"4077:6:36"},"nativeSrc":"4077:19:36","nodeType":"YulFunctionCall","src":"4077:19:36"},"nativeSrc":"4077:19:36","nodeType":"YulExpressionStatement","src":"4077:19:36"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4924,"isOffset":false,"isSlot":false,"src":"4084:4:36","valueSize":1},{"declaration":4926,"isOffset":false,"isSlot":false,"src":"4090:5:36","valueSize":1}],"flags":["memory-safe"],"id":4929,"nodeType":"InlineAssembly","src":"4038:68:36"}]},"documentation":{"id":4921,"nodeType":"StructuredDocumentation","src":"3887:78:36","text":" @dev Store `value` at location `slot` in transient storage."},"id":4931,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"3979:6:36","nodeType":"FunctionDefinition","parameters":{"id":4927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4924,"mutability":"mutable","name":"slot","nameLocation":"3998:4:36","nodeType":"VariableDeclaration","scope":4931,"src":"3986:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"},"typeName":{"id":4923,"nodeType":"UserDefinedTypeName","pathNode":{"id":4922,"name":"Bytes32Slot","nameLocations":["3986:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4816,"src":"3986:11:36"},"referencedDeclaration":4816,"src":"3986:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32Slot_$4816","typeString":"TransientSlot.Bytes32Slot"}},"visibility":"internal"},{"constant":false,"id":4926,"mutability":"mutable","name":"value","nameLocation":"4012:5:36","nodeType":"VariableDeclaration","scope":4931,"src":"4004:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4004:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3985:33:36"},"returnParameters":{"id":4928,"nodeType":"ParameterList","parameters":[],"src":"4028:0:36"},"scope":4976,"src":"3970:142:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4941,"nodeType":"Block","src":"4278:85:36","statements":[{"AST":{"nativeSrc":"4313:44:36","nodeType":"YulBlock","src":"4313:44:36","statements":[{"nativeSrc":"4327:20:36","nodeType":"YulAssignment","src":"4327:20:36","value":{"arguments":[{"name":"slot","nativeSrc":"4342:4:36","nodeType":"YulIdentifier","src":"4342:4:36"}],"functionName":{"name":"tload","nativeSrc":"4336:5:36","nodeType":"YulIdentifier","src":"4336:5:36"},"nativeSrc":"4336:11:36","nodeType":"YulFunctionCall","src":"4336:11:36"},"variableNames":[{"name":"value","nativeSrc":"4327:5:36","nodeType":"YulIdentifier","src":"4327:5:36"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4935,"isOffset":false,"isSlot":false,"src":"4342:4:36","valueSize":1},{"declaration":4938,"isOffset":false,"isSlot":false,"src":"4327:5:36","valueSize":1}],"flags":["memory-safe"],"id":4940,"nodeType":"InlineAssembly","src":"4288:69:36"}]},"documentation":{"id":4932,"nodeType":"StructuredDocumentation","src":"4118:84:36","text":" @dev Load the value held at location `slot` in transient storage."},"id":4942,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"4216:5:36","nodeType":"FunctionDefinition","parameters":{"id":4936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4935,"mutability":"mutable","name":"slot","nameLocation":"4234:4:36","nodeType":"VariableDeclaration","scope":4942,"src":"4222:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"},"typeName":{"id":4934,"nodeType":"UserDefinedTypeName","pathNode":{"id":4933,"name":"Uint256Slot","nameLocations":["4222:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4833,"src":"4222:11:36"},"referencedDeclaration":4833,"src":"4222:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"}},"visibility":"internal"}],"src":"4221:18:36"},"returnParameters":{"id":4939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4938,"mutability":"mutable","name":"value","nameLocation":"4271:5:36","nodeType":"VariableDeclaration","scope":4942,"src":"4263:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4937,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4262:15:36"},"scope":4976,"src":"4207:156:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4952,"nodeType":"Block","src":"4510:84:36","statements":[{"AST":{"nativeSrc":"4545:43:36","nodeType":"YulBlock","src":"4545:43:36","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"4566:4:36","nodeType":"YulIdentifier","src":"4566:4:36"},{"name":"value","nativeSrc":"4572:5:36","nodeType":"YulIdentifier","src":"4572:5:36"}],"functionName":{"name":"tstore","nativeSrc":"4559:6:36","nodeType":"YulIdentifier","src":"4559:6:36"},"nativeSrc":"4559:19:36","nodeType":"YulFunctionCall","src":"4559:19:36"},"nativeSrc":"4559:19:36","nodeType":"YulExpressionStatement","src":"4559:19:36"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4946,"isOffset":false,"isSlot":false,"src":"4566:4:36","valueSize":1},{"declaration":4948,"isOffset":false,"isSlot":false,"src":"4572:5:36","valueSize":1}],"flags":["memory-safe"],"id":4951,"nodeType":"InlineAssembly","src":"4520:68:36"}]},"documentation":{"id":4943,"nodeType":"StructuredDocumentation","src":"4369:78:36","text":" @dev Store `value` at location `slot` in transient storage."},"id":4953,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"4461:6:36","nodeType":"FunctionDefinition","parameters":{"id":4949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4946,"mutability":"mutable","name":"slot","nameLocation":"4480:4:36","nodeType":"VariableDeclaration","scope":4953,"src":"4468:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"},"typeName":{"id":4945,"nodeType":"UserDefinedTypeName","pathNode":{"id":4944,"name":"Uint256Slot","nameLocations":["4468:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":4833,"src":"4468:11:36"},"referencedDeclaration":4833,"src":"4468:11:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256Slot_$4833","typeString":"TransientSlot.Uint256Slot"}},"visibility":"internal"},{"constant":false,"id":4948,"mutability":"mutable","name":"value","nameLocation":"4494:5:36","nodeType":"VariableDeclaration","scope":4953,"src":"4486:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4947,"name":"uint256","nodeType":"ElementaryTypeName","src":"4486:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4467:33:36"},"returnParameters":{"id":4950,"nodeType":"ParameterList","parameters":[],"src":"4510:0:36"},"scope":4976,"src":"4452:142:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4963,"nodeType":"Block","src":"4758:85:36","statements":[{"AST":{"nativeSrc":"4793:44:36","nodeType":"YulBlock","src":"4793:44:36","statements":[{"nativeSrc":"4807:20:36","nodeType":"YulAssignment","src":"4807:20:36","value":{"arguments":[{"name":"slot","nativeSrc":"4822:4:36","nodeType":"YulIdentifier","src":"4822:4:36"}],"functionName":{"name":"tload","nativeSrc":"4816:5:36","nodeType":"YulIdentifier","src":"4816:5:36"},"nativeSrc":"4816:11:36","nodeType":"YulFunctionCall","src":"4816:11:36"},"variableNames":[{"name":"value","nativeSrc":"4807:5:36","nodeType":"YulIdentifier","src":"4807:5:36"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":4957,"isOffset":false,"isSlot":false,"src":"4822:4:36","valueSize":1},{"declaration":4960,"isOffset":false,"isSlot":false,"src":"4807:5:36","valueSize":1}],"flags":["memory-safe"],"id":4962,"nodeType":"InlineAssembly","src":"4768:69:36"}]},"documentation":{"id":4954,"nodeType":"StructuredDocumentation","src":"4600:84:36","text":" @dev Load the value held at location `slot` in transient storage."},"id":4964,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"4698:5:36","nodeType":"FunctionDefinition","parameters":{"id":4958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4957,"mutability":"mutable","name":"slot","nameLocation":"4715:4:36","nodeType":"VariableDeclaration","scope":4964,"src":"4704:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"},"typeName":{"id":4956,"nodeType":"UserDefinedTypeName","pathNode":{"id":4955,"name":"Int256Slot","nameLocations":["4704:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":4850,"src":"4704:10:36"},"referencedDeclaration":4850,"src":"4704:10:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"}},"visibility":"internal"}],"src":"4703:17:36"},"returnParameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4960,"mutability":"mutable","name":"value","nameLocation":"4751:5:36","nodeType":"VariableDeclaration","scope":4964,"src":"4744:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4959,"name":"int256","nodeType":"ElementaryTypeName","src":"4744:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4743:14:36"},"scope":4976,"src":"4689:154:36","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4974,"nodeType":"Block","src":"4988:84:36","statements":[{"AST":{"nativeSrc":"5023:43:36","nodeType":"YulBlock","src":"5023:43:36","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"5044:4:36","nodeType":"YulIdentifier","src":"5044:4:36"},{"name":"value","nativeSrc":"5050:5:36","nodeType":"YulIdentifier","src":"5050:5:36"}],"functionName":{"name":"tstore","nativeSrc":"5037:6:36","nodeType":"YulIdentifier","src":"5037:6:36"},"nativeSrc":"5037:19:36","nodeType":"YulFunctionCall","src":"5037:19:36"},"nativeSrc":"5037:19:36","nodeType":"YulExpressionStatement","src":"5037:19:36"}]},"evmVersion":"cancun","externalReferences":[{"declaration":4968,"isOffset":false,"isSlot":false,"src":"5044:4:36","valueSize":1},{"declaration":4970,"isOffset":false,"isSlot":false,"src":"5050:5:36","valueSize":1}],"flags":["memory-safe"],"id":4973,"nodeType":"InlineAssembly","src":"4998:68:36"}]},"documentation":{"id":4965,"nodeType":"StructuredDocumentation","src":"4849:78:36","text":" @dev Store `value` at location `slot` in transient storage."},"id":4975,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"4941:6:36","nodeType":"FunctionDefinition","parameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4968,"mutability":"mutable","name":"slot","nameLocation":"4959:4:36","nodeType":"VariableDeclaration","scope":4975,"src":"4948:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"},"typeName":{"id":4967,"nodeType":"UserDefinedTypeName","pathNode":{"id":4966,"name":"Int256Slot","nameLocations":["4948:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":4850,"src":"4948:10:36"},"referencedDeclaration":4850,"src":"4948:10:36","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256Slot_$4850","typeString":"TransientSlot.Int256Slot"}},"visibility":"internal"},{"constant":false,"id":4970,"mutability":"mutable","name":"value","nameLocation":"4972:5:36","nodeType":"VariableDeclaration","scope":4975,"src":"4965:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4969,"name":"int256","nodeType":"ElementaryTypeName","src":"4965:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4947:31:36"},"returnParameters":{"id":4972,"nodeType":"ParameterList","parameters":[],"src":"4988:0:36"},"scope":4976,"src":"4932:140:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":4977,"src":"1163:3911:36","usedErrors":[],"usedEvents":[]}],"src":"197:4878:36"},"id":36},"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[5000],"IERC165":[5012]},"id":5001,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4978,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:37"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":4980,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5001,"sourceUnit":5013,"src":"140:38:37","symbolAliases":[{"foreign":{"id":4979,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"148:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4982,"name":"IERC165","nameLocations":["688:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":5012,"src":"688:7:37"},"id":4983,"nodeType":"InheritanceSpecifier","src":"688:7:37"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":4981,"nodeType":"StructuredDocumentation","src":"180:479:37","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```"},"fullyImplemented":true,"id":5000,"linearizedBaseContracts":[5000,5012],"name":"ERC165","nameLocation":"678:6:37","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[5011],"body":{"id":4998,"nodeType":"Block","src":"812:64:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4991,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"829:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":4993,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"849:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$5012_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$5012_$","typeString":"type(contract IERC165)"}],"id":4992,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"844:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$5012","typeString":"type(contract IERC165)"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"858:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"844:25:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"829:40:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4990,"id":4997,"nodeType":"Return","src":"822:47:37"}]},"documentation":{"id":4984,"nodeType":"StructuredDocumentation","src":"702:23:37","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":4999,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"739:17:37","nodeType":"FunctionDefinition","parameters":{"id":4987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4986,"mutability":"mutable","name":"interfaceId","nameLocation":"764:11:37","nodeType":"VariableDeclaration","scope":4999,"src":"757:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4985,"name":"bytes4","nodeType":"ElementaryTypeName","src":"757:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"756:20:37"},"returnParameters":{"id":4990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4999,"src":"806:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4988,"name":"bool","nodeType":"ElementaryTypeName","src":"806:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"805:6:37"},"scope":5000,"src":"730:146:37","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":5001,"src":"660:218:37","usedErrors":[],"usedEvents":[]}],"src":"114:765:37"},"id":37},"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[5012]},"id":5013,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5002,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"115:25:38"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":5003,"nodeType":"StructuredDocumentation","src":"142:280:38","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":5012,"linearizedBaseContracts":[5012],"name":"IERC165","nameLocation":"433:7:38","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5004,"nodeType":"StructuredDocumentation","src":"447:340:38","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":5011,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"801:17:38","nodeType":"FunctionDefinition","parameters":{"id":5007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"interfaceId","nameLocation":"826:11:38","nodeType":"VariableDeclaration","scope":5011,"src":"819:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5005,"name":"bytes4","nodeType":"ElementaryTypeName","src":"819:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"818:20:38"},"returnParameters":{"id":5010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5011,"src":"862:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5008,"name":"bool","nodeType":"ElementaryTypeName","src":"862:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"861:6:38"},"scope":5012,"src":"792:76:38","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5013,"src":"423:447:38","usedErrors":[],"usedEvents":[]}],"src":"115:756:38"},"id":38},"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol","exportedSymbols":{"Math":[6633],"Panic":[4454],"SafeCast":[8398]},"id":6634,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5014,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:39"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Panic.sol","file":"../Panic.sol","id":5016,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6634,"sourceUnit":4455,"src":"129:35:39","symbolAliases":[{"foreign":{"id":5015,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"137:5:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":5018,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6634,"sourceUnit":8399,"src":"165:40:39","symbolAliases":[{"foreign":{"id":5017,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"173:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":5019,"nodeType":"StructuredDocumentation","src":"207:73:39","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":6633,"linearizedBaseContracts":[6633],"name":"Math","nameLocation":"289:4:39","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":5024,"members":[{"id":5020,"name":"Floor","nameLocation":"324:5:39","nodeType":"EnumValue","src":"324:5:39"},{"id":5021,"name":"Ceil","nameLocation":"367:4:39","nodeType":"EnumValue","src":"367:4:39"},{"id":5022,"name":"Trunc","nameLocation":"409:5:39","nodeType":"EnumValue","src":"409:5:39"},{"id":5023,"name":"Expand","nameLocation":"439:6:39","nodeType":"EnumValue","src":"439:6:39"}],"name":"Rounding","nameLocation":"305:8:39","nodeType":"EnumDefinition","src":"300:169:39"},{"body":{"id":5037,"nodeType":"Block","src":"731:112:39","statements":[{"AST":{"nativeSrc":"766:71:39","nodeType":"YulBlock","src":"766:71:39","statements":[{"nativeSrc":"780:16:39","nodeType":"YulAssignment","src":"780:16:39","value":{"arguments":[{"name":"a","nativeSrc":"791:1:39","nodeType":"YulIdentifier","src":"791:1:39"},{"name":"b","nativeSrc":"794:1:39","nodeType":"YulIdentifier","src":"794:1:39"}],"functionName":{"name":"add","nativeSrc":"787:3:39","nodeType":"YulIdentifier","src":"787:3:39"},"nativeSrc":"787:9:39","nodeType":"YulFunctionCall","src":"787:9:39"},"variableNames":[{"name":"low","nativeSrc":"780:3:39","nodeType":"YulIdentifier","src":"780:3:39"}]},{"nativeSrc":"809:18:39","nodeType":"YulAssignment","src":"809:18:39","value":{"arguments":[{"name":"low","nativeSrc":"820:3:39","nodeType":"YulIdentifier","src":"820:3:39"},{"name":"a","nativeSrc":"825:1:39","nodeType":"YulIdentifier","src":"825:1:39"}],"functionName":{"name":"lt","nativeSrc":"817:2:39","nodeType":"YulIdentifier","src":"817:2:39"},"nativeSrc":"817:10:39","nodeType":"YulFunctionCall","src":"817:10:39"},"variableNames":[{"name":"high","nativeSrc":"809:4:39","nodeType":"YulIdentifier","src":"809:4:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5027,"isOffset":false,"isSlot":false,"src":"791:1:39","valueSize":1},{"declaration":5027,"isOffset":false,"isSlot":false,"src":"825:1:39","valueSize":1},{"declaration":5029,"isOffset":false,"isSlot":false,"src":"794:1:39","valueSize":1},{"declaration":5032,"isOffset":false,"isSlot":false,"src":"809:4:39","valueSize":1},{"declaration":5034,"isOffset":false,"isSlot":false,"src":"780:3:39","valueSize":1},{"declaration":5034,"isOffset":false,"isSlot":false,"src":"820:3:39","valueSize":1}],"flags":["memory-safe"],"id":5036,"nodeType":"InlineAssembly","src":"741:96:39"}]},"documentation":{"id":5025,"nodeType":"StructuredDocumentation","src":"475:163:39","text":" @dev Return the 512-bit addition of two uint256.\n The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low."},"id":5038,"implemented":true,"kind":"function","modifiers":[],"name":"add512","nameLocation":"652:6:39","nodeType":"FunctionDefinition","parameters":{"id":5030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5027,"mutability":"mutable","name":"a","nameLocation":"667:1:39","nodeType":"VariableDeclaration","scope":5038,"src":"659:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5026,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5029,"mutability":"mutable","name":"b","nameLocation":"678:1:39","nodeType":"VariableDeclaration","scope":5038,"src":"670:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5028,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"658:22:39"},"returnParameters":{"id":5035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5032,"mutability":"mutable","name":"high","nameLocation":"712:4:39","nodeType":"VariableDeclaration","scope":5038,"src":"704:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint256","nodeType":"ElementaryTypeName","src":"704:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5034,"mutability":"mutable","name":"low","nameLocation":"726:3:39","nodeType":"VariableDeclaration","scope":5038,"src":"718:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5033,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"703:27:39"},"scope":6633,"src":"643:200:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5051,"nodeType":"Block","src":"1115:462:39","statements":[{"AST":{"nativeSrc":"1437:134:39","nodeType":"YulBlock","src":"1437:134:39","statements":[{"nativeSrc":"1451:30:39","nodeType":"YulVariableDeclaration","src":"1451:30:39","value":{"arguments":[{"name":"a","nativeSrc":"1468:1:39","nodeType":"YulIdentifier","src":"1468:1:39"},{"name":"b","nativeSrc":"1471:1:39","nodeType":"YulIdentifier","src":"1471:1:39"},{"arguments":[{"kind":"number","nativeSrc":"1478:1:39","nodeType":"YulLiteral","src":"1478:1:39","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1474:3:39","nodeType":"YulIdentifier","src":"1474:3:39"},"nativeSrc":"1474:6:39","nodeType":"YulFunctionCall","src":"1474:6:39"}],"functionName":{"name":"mulmod","nativeSrc":"1461:6:39","nodeType":"YulIdentifier","src":"1461:6:39"},"nativeSrc":"1461:20:39","nodeType":"YulFunctionCall","src":"1461:20:39"},"variables":[{"name":"mm","nativeSrc":"1455:2:39","nodeType":"YulTypedName","src":"1455:2:39","type":""}]},{"nativeSrc":"1494:16:39","nodeType":"YulAssignment","src":"1494:16:39","value":{"arguments":[{"name":"a","nativeSrc":"1505:1:39","nodeType":"YulIdentifier","src":"1505:1:39"},{"name":"b","nativeSrc":"1508:1:39","nodeType":"YulIdentifier","src":"1508:1:39"}],"functionName":{"name":"mul","nativeSrc":"1501:3:39","nodeType":"YulIdentifier","src":"1501:3:39"},"nativeSrc":"1501:9:39","nodeType":"YulFunctionCall","src":"1501:9:39"},"variableNames":[{"name":"low","nativeSrc":"1494:3:39","nodeType":"YulIdentifier","src":"1494:3:39"}]},{"nativeSrc":"1523:38:39","nodeType":"YulAssignment","src":"1523:38:39","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"1539:2:39","nodeType":"YulIdentifier","src":"1539:2:39"},{"name":"low","nativeSrc":"1543:3:39","nodeType":"YulIdentifier","src":"1543:3:39"}],"functionName":{"name":"sub","nativeSrc":"1535:3:39","nodeType":"YulIdentifier","src":"1535:3:39"},"nativeSrc":"1535:12:39","nodeType":"YulFunctionCall","src":"1535:12:39"},{"arguments":[{"name":"mm","nativeSrc":"1552:2:39","nodeType":"YulIdentifier","src":"1552:2:39"},{"name":"low","nativeSrc":"1556:3:39","nodeType":"YulIdentifier","src":"1556:3:39"}],"functionName":{"name":"lt","nativeSrc":"1549:2:39","nodeType":"YulIdentifier","src":"1549:2:39"},"nativeSrc":"1549:11:39","nodeType":"YulFunctionCall","src":"1549:11:39"}],"functionName":{"name":"sub","nativeSrc":"1531:3:39","nodeType":"YulIdentifier","src":"1531:3:39"},"nativeSrc":"1531:30:39","nodeType":"YulFunctionCall","src":"1531:30:39"},"variableNames":[{"name":"high","nativeSrc":"1523:4:39","nodeType":"YulIdentifier","src":"1523:4:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5041,"isOffset":false,"isSlot":false,"src":"1468:1:39","valueSize":1},{"declaration":5041,"isOffset":false,"isSlot":false,"src":"1505:1:39","valueSize":1},{"declaration":5043,"isOffset":false,"isSlot":false,"src":"1471:1:39","valueSize":1},{"declaration":5043,"isOffset":false,"isSlot":false,"src":"1508:1:39","valueSize":1},{"declaration":5046,"isOffset":false,"isSlot":false,"src":"1523:4:39","valueSize":1},{"declaration":5048,"isOffset":false,"isSlot":false,"src":"1494:3:39","valueSize":1},{"declaration":5048,"isOffset":false,"isSlot":false,"src":"1543:3:39","valueSize":1},{"declaration":5048,"isOffset":false,"isSlot":false,"src":"1556:3:39","valueSize":1}],"flags":["memory-safe"],"id":5050,"nodeType":"InlineAssembly","src":"1412:159:39"}]},"documentation":{"id":5039,"nodeType":"StructuredDocumentation","src":"849:173:39","text":" @dev Return the 512-bit multiplication of two uint256.\n The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low."},"id":5052,"implemented":true,"kind":"function","modifiers":[],"name":"mul512","nameLocation":"1036:6:39","nodeType":"FunctionDefinition","parameters":{"id":5044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5041,"mutability":"mutable","name":"a","nameLocation":"1051:1:39","nodeType":"VariableDeclaration","scope":5052,"src":"1043:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5040,"name":"uint256","nodeType":"ElementaryTypeName","src":"1043:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5043,"mutability":"mutable","name":"b","nameLocation":"1062:1:39","nodeType":"VariableDeclaration","scope":5052,"src":"1054:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5042,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:22:39"},"returnParameters":{"id":5049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5046,"mutability":"mutable","name":"high","nameLocation":"1096:4:39","nodeType":"VariableDeclaration","scope":5052,"src":"1088:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5048,"mutability":"mutable","name":"low","nameLocation":"1110:3:39","nodeType":"VariableDeclaration","scope":5052,"src":"1102:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1102:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1087:27:39"},"scope":6633,"src":"1027:550:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5086,"nodeType":"Block","src":"1784:149:39","statements":[{"id":5085,"nodeType":"UncheckedBlock","src":"1794:133:39","statements":[{"assignments":[5065],"declarations":[{"constant":false,"id":5065,"mutability":"mutable","name":"c","nameLocation":"1826:1:39","nodeType":"VariableDeclaration","scope":5085,"src":"1818:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5064,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5069,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5066,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5055,"src":"1830:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5067,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5057,"src":"1834:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1830:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1818:17:39"},{"expression":{"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5070,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"1849:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5071,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5065,"src":"1859:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5072,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5055,"src":"1864:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1859:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1849:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5075,"nodeType":"ExpressionStatement","src":"1849:16:39"},{"expression":{"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5076,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"1879:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5077,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5065,"src":"1888:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5080,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"1908:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5078,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"1892:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"1892:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1892:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1888:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1879:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5084,"nodeType":"ExpressionStatement","src":"1879:37:39"}]}]},"documentation":{"id":5053,"nodeType":"StructuredDocumentation","src":"1583:105:39","text":" @dev Returns the addition of two unsigned integers, with a success flag (no overflow)."},"id":5087,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"1702:6:39","nodeType":"FunctionDefinition","parameters":{"id":5058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5055,"mutability":"mutable","name":"a","nameLocation":"1717:1:39","nodeType":"VariableDeclaration","scope":5087,"src":"1709:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5057,"mutability":"mutable","name":"b","nameLocation":"1728:1:39","nodeType":"VariableDeclaration","scope":5087,"src":"1720:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1708:22:39"},"returnParameters":{"id":5063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"mutability":"mutable","name":"success","nameLocation":"1759:7:39","nodeType":"VariableDeclaration","scope":5087,"src":"1754:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5059,"name":"bool","nodeType":"ElementaryTypeName","src":"1754:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5062,"mutability":"mutable","name":"result","nameLocation":"1776:6:39","nodeType":"VariableDeclaration","scope":5087,"src":"1768:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5061,"name":"uint256","nodeType":"ElementaryTypeName","src":"1768:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1753:30:39"},"scope":6633,"src":"1693:240:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5121,"nodeType":"Block","src":"2143:149:39","statements":[{"id":5120,"nodeType":"UncheckedBlock","src":"2153:133:39","statements":[{"assignments":[5100],"declarations":[{"constant":false,"id":5100,"mutability":"mutable","name":"c","nameLocation":"2185:1:39","nodeType":"VariableDeclaration","scope":5120,"src":"2177:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5099,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5104,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5101,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5090,"src":"2189:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5102,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5092,"src":"2193:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2189:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2177:17:39"},{"expression":{"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5105,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5095,"src":"2208:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5106,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"2218:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5107,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5090,"src":"2223:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2218:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2208:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5110,"nodeType":"ExpressionStatement","src":"2208:16:39"},{"expression":{"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5111,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5097,"src":"2238:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5112,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"2247:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5115,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5095,"src":"2267:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5113,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"2251:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"2251:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2251:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2247:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2238:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5119,"nodeType":"ExpressionStatement","src":"2238:37:39"}]}]},"documentation":{"id":5088,"nodeType":"StructuredDocumentation","src":"1939:108:39","text":" @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow)."},"id":5122,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"2061:6:39","nodeType":"FunctionDefinition","parameters":{"id":5093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5090,"mutability":"mutable","name":"a","nameLocation":"2076:1:39","nodeType":"VariableDeclaration","scope":5122,"src":"2068:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5089,"name":"uint256","nodeType":"ElementaryTypeName","src":"2068:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5092,"mutability":"mutable","name":"b","nameLocation":"2087:1:39","nodeType":"VariableDeclaration","scope":5122,"src":"2079:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5091,"name":"uint256","nodeType":"ElementaryTypeName","src":"2079:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2067:22:39"},"returnParameters":{"id":5098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5095,"mutability":"mutable","name":"success","nameLocation":"2118:7:39","nodeType":"VariableDeclaration","scope":5122,"src":"2113:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5094,"name":"bool","nodeType":"ElementaryTypeName","src":"2113:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5097,"mutability":"mutable","name":"result","nameLocation":"2135:6:39","nodeType":"VariableDeclaration","scope":5122,"src":"2127:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2112:30:39"},"scope":6633,"src":"2052:240:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5151,"nodeType":"Block","src":"2505:391:39","statements":[{"id":5150,"nodeType":"UncheckedBlock","src":"2515:375:39","statements":[{"assignments":[5135],"declarations":[{"constant":false,"id":5135,"mutability":"mutable","name":"c","nameLocation":"2547:1:39","nodeType":"VariableDeclaration","scope":5150,"src":"2539:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5134,"name":"uint256","nodeType":"ElementaryTypeName","src":"2539:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5139,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5136,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5125,"src":"2551:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5137,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"2555:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2551:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2539:17:39"},{"AST":{"nativeSrc":"2595:188:39","nodeType":"YulBlock","src":"2595:188:39","statements":[{"nativeSrc":"2727:42:39","nodeType":"YulAssignment","src":"2727:42:39","value":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"2748:1:39","nodeType":"YulIdentifier","src":"2748:1:39"},{"name":"a","nativeSrc":"2751:1:39","nodeType":"YulIdentifier","src":"2751:1:39"}],"functionName":{"name":"div","nativeSrc":"2744:3:39","nodeType":"YulIdentifier","src":"2744:3:39"},"nativeSrc":"2744:9:39","nodeType":"YulFunctionCall","src":"2744:9:39"},{"name":"b","nativeSrc":"2755:1:39","nodeType":"YulIdentifier","src":"2755:1:39"}],"functionName":{"name":"eq","nativeSrc":"2741:2:39","nodeType":"YulIdentifier","src":"2741:2:39"},"nativeSrc":"2741:16:39","nodeType":"YulFunctionCall","src":"2741:16:39"},{"arguments":[{"name":"a","nativeSrc":"2766:1:39","nodeType":"YulIdentifier","src":"2766:1:39"}],"functionName":{"name":"iszero","nativeSrc":"2759:6:39","nodeType":"YulIdentifier","src":"2759:6:39"},"nativeSrc":"2759:9:39","nodeType":"YulFunctionCall","src":"2759:9:39"}],"functionName":{"name":"or","nativeSrc":"2738:2:39","nodeType":"YulIdentifier","src":"2738:2:39"},"nativeSrc":"2738:31:39","nodeType":"YulFunctionCall","src":"2738:31:39"},"variableNames":[{"name":"success","nativeSrc":"2727:7:39","nodeType":"YulIdentifier","src":"2727:7:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5125,"isOffset":false,"isSlot":false,"src":"2751:1:39","valueSize":1},{"declaration":5125,"isOffset":false,"isSlot":false,"src":"2766:1:39","valueSize":1},{"declaration":5127,"isOffset":false,"isSlot":false,"src":"2755:1:39","valueSize":1},{"declaration":5135,"isOffset":false,"isSlot":false,"src":"2748:1:39","valueSize":1},{"declaration":5130,"isOffset":false,"isSlot":false,"src":"2727:7:39","valueSize":1}],"flags":["memory-safe"],"id":5140,"nodeType":"InlineAssembly","src":"2570:213:39"},{"expression":{"id":5148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5141,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5132,"src":"2842:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5142,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5135,"src":"2851:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5145,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"2871:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5143,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"2855:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2864:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"2855:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2855:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2851:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2842:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5149,"nodeType":"ExpressionStatement","src":"2842:37:39"}]}]},"documentation":{"id":5123,"nodeType":"StructuredDocumentation","src":"2298:111:39","text":" @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow)."},"id":5152,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"2423:6:39","nodeType":"FunctionDefinition","parameters":{"id":5128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5125,"mutability":"mutable","name":"a","nameLocation":"2438:1:39","nodeType":"VariableDeclaration","scope":5152,"src":"2430:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5124,"name":"uint256","nodeType":"ElementaryTypeName","src":"2430:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5127,"mutability":"mutable","name":"b","nameLocation":"2449:1:39","nodeType":"VariableDeclaration","scope":5152,"src":"2441:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5126,"name":"uint256","nodeType":"ElementaryTypeName","src":"2441:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2429:22:39"},"returnParameters":{"id":5133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5130,"mutability":"mutable","name":"success","nameLocation":"2480:7:39","nodeType":"VariableDeclaration","scope":5152,"src":"2475:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5129,"name":"bool","nodeType":"ElementaryTypeName","src":"2475:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5132,"mutability":"mutable","name":"result","nameLocation":"2497:6:39","nodeType":"VariableDeclaration","scope":5152,"src":"2489:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5131,"name":"uint256","nodeType":"ElementaryTypeName","src":"2489:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2474:30:39"},"scope":6633,"src":"2414:482:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5172,"nodeType":"Block","src":"3111:231:39","statements":[{"id":5171,"nodeType":"UncheckedBlock","src":"3121:215:39","statements":[{"expression":{"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5164,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5160,"src":"3145:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5165,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"3155:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3159:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3155:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3145:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5169,"nodeType":"ExpressionStatement","src":"3145:15:39"},{"AST":{"nativeSrc":"3199:127:39","nodeType":"YulBlock","src":"3199:127:39","statements":[{"nativeSrc":"3293:19:39","nodeType":"YulAssignment","src":"3293:19:39","value":{"arguments":[{"name":"a","nativeSrc":"3307:1:39","nodeType":"YulIdentifier","src":"3307:1:39"},{"name":"b","nativeSrc":"3310:1:39","nodeType":"YulIdentifier","src":"3310:1:39"}],"functionName":{"name":"div","nativeSrc":"3303:3:39","nodeType":"YulIdentifier","src":"3303:3:39"},"nativeSrc":"3303:9:39","nodeType":"YulFunctionCall","src":"3303:9:39"},"variableNames":[{"name":"result","nativeSrc":"3293:6:39","nodeType":"YulIdentifier","src":"3293:6:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5155,"isOffset":false,"isSlot":false,"src":"3307:1:39","valueSize":1},{"declaration":5157,"isOffset":false,"isSlot":false,"src":"3310:1:39","valueSize":1},{"declaration":5162,"isOffset":false,"isSlot":false,"src":"3293:6:39","valueSize":1}],"flags":["memory-safe"],"id":5170,"nodeType":"InlineAssembly","src":"3174:152:39"}]}]},"documentation":{"id":5153,"nodeType":"StructuredDocumentation","src":"2902:113:39","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":5173,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"3029:6:39","nodeType":"FunctionDefinition","parameters":{"id":5158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"mutability":"mutable","name":"a","nameLocation":"3044:1:39","nodeType":"VariableDeclaration","scope":5173,"src":"3036:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5154,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5157,"mutability":"mutable","name":"b","nameLocation":"3055:1:39","nodeType":"VariableDeclaration","scope":5173,"src":"3047:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3047:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3035:22:39"},"returnParameters":{"id":5163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5160,"mutability":"mutable","name":"success","nameLocation":"3086:7:39","nodeType":"VariableDeclaration","scope":5173,"src":"3081:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5159,"name":"bool","nodeType":"ElementaryTypeName","src":"3081:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5162,"mutability":"mutable","name":"result","nameLocation":"3103:6:39","nodeType":"VariableDeclaration","scope":5173,"src":"3095:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5161,"name":"uint256","nodeType":"ElementaryTypeName","src":"3095:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3080:30:39"},"scope":6633,"src":"3020:322:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5193,"nodeType":"Block","src":"3567:231:39","statements":[{"id":5192,"nodeType":"UncheckedBlock","src":"3577:215:39","statements":[{"expression":{"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5185,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"3601:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5186,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"3611:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3615:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3611:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3601:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5190,"nodeType":"ExpressionStatement","src":"3601:15:39"},{"AST":{"nativeSrc":"3655:127:39","nodeType":"YulBlock","src":"3655:127:39","statements":[{"nativeSrc":"3749:19:39","nodeType":"YulAssignment","src":"3749:19:39","value":{"arguments":[{"name":"a","nativeSrc":"3763:1:39","nodeType":"YulIdentifier","src":"3763:1:39"},{"name":"b","nativeSrc":"3766:1:39","nodeType":"YulIdentifier","src":"3766:1:39"}],"functionName":{"name":"mod","nativeSrc":"3759:3:39","nodeType":"YulIdentifier","src":"3759:3:39"},"nativeSrc":"3759:9:39","nodeType":"YulFunctionCall","src":"3759:9:39"},"variableNames":[{"name":"result","nativeSrc":"3749:6:39","nodeType":"YulIdentifier","src":"3749:6:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5176,"isOffset":false,"isSlot":false,"src":"3763:1:39","valueSize":1},{"declaration":5178,"isOffset":false,"isSlot":false,"src":"3766:1:39","valueSize":1},{"declaration":5183,"isOffset":false,"isSlot":false,"src":"3749:6:39","valueSize":1}],"flags":["memory-safe"],"id":5191,"nodeType":"InlineAssembly","src":"3630:152:39"}]}]},"documentation":{"id":5174,"nodeType":"StructuredDocumentation","src":"3348:123:39","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":5194,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"3485:6:39","nodeType":"FunctionDefinition","parameters":{"id":5179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5176,"mutability":"mutable","name":"a","nameLocation":"3500:1:39","nodeType":"VariableDeclaration","scope":5194,"src":"3492:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5175,"name":"uint256","nodeType":"ElementaryTypeName","src":"3492:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5178,"mutability":"mutable","name":"b","nameLocation":"3511:1:39","nodeType":"VariableDeclaration","scope":5194,"src":"3503:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5177,"name":"uint256","nodeType":"ElementaryTypeName","src":"3503:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3491:22:39"},"returnParameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5181,"mutability":"mutable","name":"success","nameLocation":"3542:7:39","nodeType":"VariableDeclaration","scope":5194,"src":"3537:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5180,"name":"bool","nodeType":"ElementaryTypeName","src":"3537:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5183,"mutability":"mutable","name":"result","nameLocation":"3559:6:39","nodeType":"VariableDeclaration","scope":5194,"src":"3551:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"3551:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3536:30:39"},"scope":6633,"src":"3476:322:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5223,"nodeType":"Block","src":"3989:122:39","statements":[{"assignments":[5205,5207],"declarations":[{"constant":false,"id":5205,"mutability":"mutable","name":"success","nameLocation":"4005:7:39","nodeType":"VariableDeclaration","scope":5223,"src":"4000:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5204,"name":"bool","nodeType":"ElementaryTypeName","src":"4000:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5207,"mutability":"mutable","name":"result","nameLocation":"4022:6:39","nodeType":"VariableDeclaration","scope":5223,"src":"4014:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5206,"name":"uint256","nodeType":"ElementaryTypeName","src":"4014:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5212,"initialValue":{"arguments":[{"id":5209,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"4039:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5210,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5199,"src":"4042:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5208,"name":"tryAdd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"4032:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool,uint256)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3999:45:39"},{"expression":{"arguments":[{"id":5214,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5205,"src":"4069:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5215,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"4078:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"arguments":[{"id":5218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4091:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5217,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:39","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5216,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4086:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4086:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4100:3:39","memberName":"max","nodeType":"MemberAccess","src":"4086:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5213,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"4061:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5203,"id":5222,"nodeType":"Return","src":"4054:50:39"}]},"documentation":{"id":5195,"nodeType":"StructuredDocumentation","src":"3804:103:39","text":" @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing."},"id":5224,"implemented":true,"kind":"function","modifiers":[],"name":"saturatingAdd","nameLocation":"3921:13:39","nodeType":"FunctionDefinition","parameters":{"id":5200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5197,"mutability":"mutable","name":"a","nameLocation":"3943:1:39","nodeType":"VariableDeclaration","scope":5224,"src":"3935:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5196,"name":"uint256","nodeType":"ElementaryTypeName","src":"3935:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5199,"mutability":"mutable","name":"b","nameLocation":"3954:1:39","nodeType":"VariableDeclaration","scope":5224,"src":"3946:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3946:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3934:22:39"},"returnParameters":{"id":5203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5224,"src":"3980:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3980:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3979:9:39"},"scope":6633,"src":"3912:199:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5243,"nodeType":"Block","src":"4294:73:39","statements":[{"assignments":[null,5235],"declarations":[null,{"constant":false,"id":5235,"mutability":"mutable","name":"result","nameLocation":"4315:6:39","nodeType":"VariableDeclaration","scope":5243,"src":"4307:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4307:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5240,"initialValue":{"arguments":[{"id":5237,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"4332:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5238,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"4335:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5236,"name":"trySub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"4325:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool,uint256)"}},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4325:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4304:33:39"},{"expression":{"id":5241,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5235,"src":"4354:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5233,"id":5242,"nodeType":"Return","src":"4347:13:39"}]},"documentation":{"id":5225,"nodeType":"StructuredDocumentation","src":"4117:95:39","text":" @dev Unsigned saturating subtraction, bounds to zero instead of overflowing."},"id":5244,"implemented":true,"kind":"function","modifiers":[],"name":"saturatingSub","nameLocation":"4226:13:39","nodeType":"FunctionDefinition","parameters":{"id":5230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5227,"mutability":"mutable","name":"a","nameLocation":"4248:1:39","nodeType":"VariableDeclaration","scope":5244,"src":"4240:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5226,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5229,"mutability":"mutable","name":"b","nameLocation":"4259:1:39","nodeType":"VariableDeclaration","scope":5244,"src":"4251:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5228,"name":"uint256","nodeType":"ElementaryTypeName","src":"4251:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4239:22:39"},"returnParameters":{"id":5233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5244,"src":"4285:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5231,"name":"uint256","nodeType":"ElementaryTypeName","src":"4285:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4284:9:39"},"scope":6633,"src":"4217:150:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5273,"nodeType":"Block","src":"4564:122:39","statements":[{"assignments":[5255,5257],"declarations":[{"constant":false,"id":5255,"mutability":"mutable","name":"success","nameLocation":"4580:7:39","nodeType":"VariableDeclaration","scope":5273,"src":"4575:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5254,"name":"bool","nodeType":"ElementaryTypeName","src":"4575:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5257,"mutability":"mutable","name":"result","nameLocation":"4597:6:39","nodeType":"VariableDeclaration","scope":5273,"src":"4589:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5256,"name":"uint256","nodeType":"ElementaryTypeName","src":"4589:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5262,"initialValue":{"arguments":[{"id":5259,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"4614:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5260,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5249,"src":"4617:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5258,"name":"tryMul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5152,"src":"4607:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (bool,uint256)"}},"id":5261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4607:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4574:45:39"},{"expression":{"arguments":[{"id":5264,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"4644:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5265,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5257,"src":"4653:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"arguments":[{"id":5268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4666:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4666:7:39","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":5266,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4661:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4661:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":5270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4675:3:39","memberName":"max","nodeType":"MemberAccess","src":"4661:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5263,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"4636:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4636:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5253,"id":5272,"nodeType":"Return","src":"4629:50:39"}]},"documentation":{"id":5245,"nodeType":"StructuredDocumentation","src":"4373:109:39","text":" @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing."},"id":5274,"implemented":true,"kind":"function","modifiers":[],"name":"saturatingMul","nameLocation":"4496:13:39","nodeType":"FunctionDefinition","parameters":{"id":5250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5247,"mutability":"mutable","name":"a","nameLocation":"4518:1:39","nodeType":"VariableDeclaration","scope":5274,"src":"4510:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5246,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5249,"mutability":"mutable","name":"b","nameLocation":"4529:1:39","nodeType":"VariableDeclaration","scope":5274,"src":"4521:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5248,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4509:22:39"},"returnParameters":{"id":5253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5274,"src":"4555:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5251,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4554:9:39"},"scope":6633,"src":"4487:199:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5300,"nodeType":"Block","src":"5158:207:39","statements":[{"id":5299,"nodeType":"UncheckedBlock","src":"5168:191:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5286,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"5306:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"5312:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":5288,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"5316:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5312:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5290,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5311:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5293,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5277,"src":"5337:9:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5291,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"5321:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5330:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"5321:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5321:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5311:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5296,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5310:38:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5306:42:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5285,"id":5298,"nodeType":"Return","src":"5299:49:39"}]}]},"documentation":{"id":5275,"nodeType":"StructuredDocumentation","src":"4692:374:39","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":5301,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"5080:7:39","nodeType":"FunctionDefinition","parameters":{"id":5282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5277,"mutability":"mutable","name":"condition","nameLocation":"5093:9:39","nodeType":"VariableDeclaration","scope":5301,"src":"5088:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5276,"name":"bool","nodeType":"ElementaryTypeName","src":"5088:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5279,"mutability":"mutable","name":"a","nameLocation":"5112:1:39","nodeType":"VariableDeclaration","scope":5301,"src":"5104:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5278,"name":"uint256","nodeType":"ElementaryTypeName","src":"5104:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5281,"mutability":"mutable","name":"b","nameLocation":"5123:1:39","nodeType":"VariableDeclaration","scope":5301,"src":"5115:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5280,"name":"uint256","nodeType":"ElementaryTypeName","src":"5115:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5087:38:39"},"returnParameters":{"id":5285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5301,"src":"5149:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5283,"name":"uint256","nodeType":"ElementaryTypeName","src":"5149:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5148:9:39"},"scope":6633,"src":"5071:294:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5319,"nodeType":"Block","src":"5502:44:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5312,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5304,"src":"5527:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5313,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"5531:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5527:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5315,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5304,"src":"5534:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5316,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5306,"src":"5537:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5311,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"5519:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5519:20:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5310,"id":5318,"nodeType":"Return","src":"5512:27:39"}]},"documentation":{"id":5302,"nodeType":"StructuredDocumentation","src":"5371:59:39","text":" @dev Returns the largest of two numbers."},"id":5320,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"5444:3:39","nodeType":"FunctionDefinition","parameters":{"id":5307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5304,"mutability":"mutable","name":"a","nameLocation":"5456:1:39","nodeType":"VariableDeclaration","scope":5320,"src":"5448:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5303,"name":"uint256","nodeType":"ElementaryTypeName","src":"5448:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5306,"mutability":"mutable","name":"b","nameLocation":"5467:1:39","nodeType":"VariableDeclaration","scope":5320,"src":"5459:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5305,"name":"uint256","nodeType":"ElementaryTypeName","src":"5459:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5447:22:39"},"returnParameters":{"id":5310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5320,"src":"5493:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5308,"name":"uint256","nodeType":"ElementaryTypeName","src":"5493:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5492:9:39"},"scope":6633,"src":"5435:111:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5338,"nodeType":"Block","src":"5684:44:39","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5331,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"5709:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5332,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5713:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5709:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5334,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"5716:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5335,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5719:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5330,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"5701:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:20:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5329,"id":5337,"nodeType":"Return","src":"5694:27:39"}]},"documentation":{"id":5321,"nodeType":"StructuredDocumentation","src":"5552:60:39","text":" @dev Returns the smallest of two numbers."},"id":5339,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"5626:3:39","nodeType":"FunctionDefinition","parameters":{"id":5326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"a","nameLocation":"5638:1:39","nodeType":"VariableDeclaration","scope":5339,"src":"5630:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5322,"name":"uint256","nodeType":"ElementaryTypeName","src":"5630:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5325,"mutability":"mutable","name":"b","nameLocation":"5649:1:39","nodeType":"VariableDeclaration","scope":5339,"src":"5641:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5324,"name":"uint256","nodeType":"ElementaryTypeName","src":"5641:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5629:22:39"},"returnParameters":{"id":5329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5328,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5339,"src":"5675:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5327,"name":"uint256","nodeType":"ElementaryTypeName","src":"5675:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5674:9:39"},"scope":6633,"src":"5617:111:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5361,"nodeType":"Block","src":"5912:82:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5349,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5342,"src":"5967:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":5350,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"5971:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5967:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5352,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5966:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5353,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5342,"src":"5977:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":5354,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5344,"src":"5981:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5977:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5976:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":5357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5986:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5976:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5966:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5348,"id":5360,"nodeType":"Return","src":"5959:28:39"}]},"documentation":{"id":5340,"nodeType":"StructuredDocumentation","src":"5734:102:39","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":5362,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"5850:7:39","nodeType":"FunctionDefinition","parameters":{"id":5345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5342,"mutability":"mutable","name":"a","nameLocation":"5866:1:39","nodeType":"VariableDeclaration","scope":5362,"src":"5858:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5344,"mutability":"mutable","name":"b","nameLocation":"5877:1:39","nodeType":"VariableDeclaration","scope":5362,"src":"5869:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5343,"name":"uint256","nodeType":"ElementaryTypeName","src":"5869:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5857:22:39"},"returnParameters":{"id":5348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5362,"src":"5903:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5903:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5902:9:39"},"scope":6633,"src":"5841:153:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5402,"nodeType":"Block","src":"6286:633:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5372,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"6300:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6305:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6300:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5383,"nodeType":"IfStatement","src":"6296:150:39","trueBody":{"id":5382,"nodeType":"Block","src":"6308:138:39","statements":[{"expression":{"arguments":[{"expression":{"id":5378,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"6412:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6418:16:39","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":4421,"src":"6412:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5375,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"6400:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6406:5:39","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":4453,"src":"6400:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6400:35:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5381,"nodeType":"ExpressionStatement","src":"6400:35:39"}]}},{"id":5401,"nodeType":"UncheckedBlock","src":"6829:84:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5386,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"6876:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6880:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6876:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5384,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"6860:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6869:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"6860:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6860:22:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5390,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"6887:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6891:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6887:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6886:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5394,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"6896:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6886:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":5396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6900:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6886:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6885:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6860:42:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5371,"id":5400,"nodeType":"Return","src":"6853:49:39"}]}]},"documentation":{"id":5363,"nodeType":"StructuredDocumentation","src":"6000:210:39","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":5403,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"6224:7:39","nodeType":"FunctionDefinition","parameters":{"id":5368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"a","nameLocation":"6240:1:39","nodeType":"VariableDeclaration","scope":5403,"src":"6232:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5364,"name":"uint256","nodeType":"ElementaryTypeName","src":"6232:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5367,"mutability":"mutable","name":"b","nameLocation":"6251:1:39","nodeType":"VariableDeclaration","scope":5403,"src":"6243:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5366,"name":"uint256","nodeType":"ElementaryTypeName","src":"6243:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6231:22:39"},"returnParameters":{"id":5371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5403,"src":"6277:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5369,"name":"uint256","nodeType":"ElementaryTypeName","src":"6277:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6276:9:39"},"scope":6633,"src":"6215:704:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5538,"nodeType":"Block","src":"7340:3585:39","statements":[{"id":5537,"nodeType":"UncheckedBlock","src":"7350:3569:39","statements":[{"assignments":[5416,5418],"declarations":[{"constant":false,"id":5416,"mutability":"mutable","name":"high","nameLocation":"7383:4:39","nodeType":"VariableDeclaration","scope":5537,"src":"7375:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5415,"name":"uint256","nodeType":"ElementaryTypeName","src":"7375:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5418,"mutability":"mutable","name":"low","nameLocation":"7397:3:39","nodeType":"VariableDeclaration","scope":5537,"src":"7389:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5417,"name":"uint256","nodeType":"ElementaryTypeName","src":"7389:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5423,"initialValue":{"arguments":[{"id":5420,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"7411:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5421,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5408,"src":"7414:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5419,"name":"mul512","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"7404:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256,uint256)"}},"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7404:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7374:42:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5424,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"7498:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7506:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7498:9:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5432,"nodeType":"IfStatement","src":"7494:365:39","trueBody":{"id":5431,"nodeType":"Block","src":"7509:350:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5427,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"7827:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5428,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"7833:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7827:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5414,"id":5430,"nodeType":"Return","src":"7820:24:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5433,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"7969:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":5434,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"7984:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7969:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5451,"nodeType":"IfStatement","src":"7965:142:39","trueBody":{"id":5450,"nodeType":"Block","src":"7990:117:39","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5440,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"8028:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8043:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8028:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":5443,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"8046:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8052:16:39","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":4421,"src":"8046:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5445,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"8070:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8076:14:39","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":4417,"src":"8070:20:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5439,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"8020:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8020:71:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5436,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"8008:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8014:5:39","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":4453,"src":"8008:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8008:84:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5449,"nodeType":"ExpressionStatement","src":"8008:84:39"}]}},{"assignments":[5453],"declarations":[{"constant":false,"id":5453,"mutability":"mutable","name":"remainder","nameLocation":"8367:9:39","nodeType":"VariableDeclaration","scope":5537,"src":"8359:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5452,"name":"uint256","nodeType":"ElementaryTypeName","src":"8359:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5454,"nodeType":"VariableDeclarationStatement","src":"8359:17:39"},{"AST":{"nativeSrc":"8415:283:39","nodeType":"YulBlock","src":"8415:283:39","statements":[{"nativeSrc":"8484:38:39","nodeType":"YulAssignment","src":"8484:38:39","value":{"arguments":[{"name":"x","nativeSrc":"8504:1:39","nodeType":"YulIdentifier","src":"8504:1:39"},{"name":"y","nativeSrc":"8507:1:39","nodeType":"YulIdentifier","src":"8507:1:39"},{"name":"denominator","nativeSrc":"8510:11:39","nodeType":"YulIdentifier","src":"8510:11:39"}],"functionName":{"name":"mulmod","nativeSrc":"8497:6:39","nodeType":"YulIdentifier","src":"8497:6:39"},"nativeSrc":"8497:25:39","nodeType":"YulFunctionCall","src":"8497:25:39"},"variableNames":[{"name":"remainder","nativeSrc":"8484:9:39","nodeType":"YulIdentifier","src":"8484:9:39"}]},{"nativeSrc":"8604:37:39","nodeType":"YulAssignment","src":"8604:37:39","value":{"arguments":[{"name":"high","nativeSrc":"8616:4:39","nodeType":"YulIdentifier","src":"8616:4:39"},{"arguments":[{"name":"remainder","nativeSrc":"8625:9:39","nodeType":"YulIdentifier","src":"8625:9:39"},{"name":"low","nativeSrc":"8636:3:39","nodeType":"YulIdentifier","src":"8636:3:39"}],"functionName":{"name":"gt","nativeSrc":"8622:2:39","nodeType":"YulIdentifier","src":"8622:2:39"},"nativeSrc":"8622:18:39","nodeType":"YulFunctionCall","src":"8622:18:39"}],"functionName":{"name":"sub","nativeSrc":"8612:3:39","nodeType":"YulIdentifier","src":"8612:3:39"},"nativeSrc":"8612:29:39","nodeType":"YulFunctionCall","src":"8612:29:39"},"variableNames":[{"name":"high","nativeSrc":"8604:4:39","nodeType":"YulIdentifier","src":"8604:4:39"}]},{"nativeSrc":"8658:26:39","nodeType":"YulAssignment","src":"8658:26:39","value":{"arguments":[{"name":"low","nativeSrc":"8669:3:39","nodeType":"YulIdentifier","src":"8669:3:39"},{"name":"remainder","nativeSrc":"8674:9:39","nodeType":"YulIdentifier","src":"8674:9:39"}],"functionName":{"name":"sub","nativeSrc":"8665:3:39","nodeType":"YulIdentifier","src":"8665:3:39"},"nativeSrc":"8665:19:39","nodeType":"YulFunctionCall","src":"8665:19:39"},"variableNames":[{"name":"low","nativeSrc":"8658:3:39","nodeType":"YulIdentifier","src":"8658:3:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5410,"isOffset":false,"isSlot":false,"src":"8510:11:39","valueSize":1},{"declaration":5416,"isOffset":false,"isSlot":false,"src":"8604:4:39","valueSize":1},{"declaration":5416,"isOffset":false,"isSlot":false,"src":"8616:4:39","valueSize":1},{"declaration":5418,"isOffset":false,"isSlot":false,"src":"8636:3:39","valueSize":1},{"declaration":5418,"isOffset":false,"isSlot":false,"src":"8658:3:39","valueSize":1},{"declaration":5418,"isOffset":false,"isSlot":false,"src":"8669:3:39","valueSize":1},{"declaration":5453,"isOffset":false,"isSlot":false,"src":"8484:9:39","valueSize":1},{"declaration":5453,"isOffset":false,"isSlot":false,"src":"8625:9:39","valueSize":1},{"declaration":5453,"isOffset":false,"isSlot":false,"src":"8674:9:39","valueSize":1},{"declaration":5406,"isOffset":false,"isSlot":false,"src":"8504:1:39","valueSize":1},{"declaration":5408,"isOffset":false,"isSlot":false,"src":"8507:1:39","valueSize":1}],"flags":["memory-safe"],"id":5455,"nodeType":"InlineAssembly","src":"8390:308:39"},{"assignments":[5457],"declarations":[{"constant":false,"id":5457,"mutability":"mutable","name":"twos","nameLocation":"8910:4:39","nodeType":"VariableDeclaration","scope":5537,"src":"8902:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5456,"name":"uint256","nodeType":"ElementaryTypeName","src":"8902:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5464,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5458,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"8917:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":5459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8932:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5460,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"8936:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8932:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8931:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8917:31:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8902:46:39"},{"AST":{"nativeSrc":"8987:359:39","nodeType":"YulBlock","src":"8987:359:39","statements":[{"nativeSrc":"9052:37:39","nodeType":"YulAssignment","src":"9052:37:39","value":{"arguments":[{"name":"denominator","nativeSrc":"9071:11:39","nodeType":"YulIdentifier","src":"9071:11:39"},{"name":"twos","nativeSrc":"9084:4:39","nodeType":"YulIdentifier","src":"9084:4:39"}],"functionName":{"name":"div","nativeSrc":"9067:3:39","nodeType":"YulIdentifier","src":"9067:3:39"},"nativeSrc":"9067:22:39","nodeType":"YulFunctionCall","src":"9067:22:39"},"variableNames":[{"name":"denominator","nativeSrc":"9052:11:39","nodeType":"YulIdentifier","src":"9052:11:39"}]},{"nativeSrc":"9153:21:39","nodeType":"YulAssignment","src":"9153:21:39","value":{"arguments":[{"name":"low","nativeSrc":"9164:3:39","nodeType":"YulIdentifier","src":"9164:3:39"},{"name":"twos","nativeSrc":"9169:4:39","nodeType":"YulIdentifier","src":"9169:4:39"}],"functionName":{"name":"div","nativeSrc":"9160:3:39","nodeType":"YulIdentifier","src":"9160:3:39"},"nativeSrc":"9160:14:39","nodeType":"YulFunctionCall","src":"9160:14:39"},"variableNames":[{"name":"low","nativeSrc":"9153:3:39","nodeType":"YulIdentifier","src":"9153:3:39"}]},{"nativeSrc":"9293:39:39","nodeType":"YulAssignment","src":"9293:39:39","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9313:1:39","nodeType":"YulLiteral","src":"9313:1:39","type":"","value":"0"},{"name":"twos","nativeSrc":"9316:4:39","nodeType":"YulIdentifier","src":"9316:4:39"}],"functionName":{"name":"sub","nativeSrc":"9309:3:39","nodeType":"YulIdentifier","src":"9309:3:39"},"nativeSrc":"9309:12:39","nodeType":"YulFunctionCall","src":"9309:12:39"},{"name":"twos","nativeSrc":"9323:4:39","nodeType":"YulIdentifier","src":"9323:4:39"}],"functionName":{"name":"div","nativeSrc":"9305:3:39","nodeType":"YulIdentifier","src":"9305:3:39"},"nativeSrc":"9305:23:39","nodeType":"YulFunctionCall","src":"9305:23:39"},{"kind":"number","nativeSrc":"9330:1:39","nodeType":"YulLiteral","src":"9330:1:39","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9301:3:39","nodeType":"YulIdentifier","src":"9301:3:39"},"nativeSrc":"9301:31:39","nodeType":"YulFunctionCall","src":"9301:31:39"},"variableNames":[{"name":"twos","nativeSrc":"9293:4:39","nodeType":"YulIdentifier","src":"9293:4:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5410,"isOffset":false,"isSlot":false,"src":"9052:11:39","valueSize":1},{"declaration":5410,"isOffset":false,"isSlot":false,"src":"9071:11:39","valueSize":1},{"declaration":5418,"isOffset":false,"isSlot":false,"src":"9153:3:39","valueSize":1},{"declaration":5418,"isOffset":false,"isSlot":false,"src":"9164:3:39","valueSize":1},{"declaration":5457,"isOffset":false,"isSlot":false,"src":"9084:4:39","valueSize":1},{"declaration":5457,"isOffset":false,"isSlot":false,"src":"9169:4:39","valueSize":1},{"declaration":5457,"isOffset":false,"isSlot":false,"src":"9293:4:39","valueSize":1},{"declaration":5457,"isOffset":false,"isSlot":false,"src":"9316:4:39","valueSize":1},{"declaration":5457,"isOffset":false,"isSlot":false,"src":"9323:4:39","valueSize":1}],"flags":["memory-safe"],"id":5465,"nodeType":"InlineAssembly","src":"8962:384:39"},{"expression":{"id":5470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5466,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"9409:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5467,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5416,"src":"9416:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5468,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5457,"src":"9423:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9416:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9409:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5471,"nodeType":"ExpressionStatement","src":"9409:18:39"},{"assignments":[5473],"declarations":[{"constant":false,"id":5473,"mutability":"mutable","name":"inverse","nameLocation":"9770:7:39","nodeType":"VariableDeclaration","scope":5537,"src":"9762:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5472,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5480,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":5474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9781:1:39","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5475,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"9785:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9781:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9780:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":5478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9800:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9780:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9762:39:39"},{"expression":{"id":5487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5481,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10018:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10029:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5483,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10033:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5484,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10047:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10033:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10029:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10018:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5488,"nodeType":"ExpressionStatement","src":"10018:36:39"},{"expression":{"id":5495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5489,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10088:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10099:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5491,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10103:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5492,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10117:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10099:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10088:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5496,"nodeType":"ExpressionStatement","src":"10088:36:39"},{"expression":{"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5497,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10160:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10171:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5499,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10175:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5500,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10189:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10175:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10171:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10160:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5504,"nodeType":"ExpressionStatement","src":"10160:36:39"},{"expression":{"id":5511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5505,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10231:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10242:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5507,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10246:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5508,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10260:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10246:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10242:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10231:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5512,"nodeType":"ExpressionStatement","src":"10231:36:39"},{"expression":{"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5513,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10304:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10315:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5515,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10319:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5516,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10333:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10319:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10315:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10304:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5520,"nodeType":"ExpressionStatement","src":"10304:36:39"},{"expression":{"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5521,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10378:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":5522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10389:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5523,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5410,"src":"10393:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5524,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10407:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10393:21:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10389:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10378:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5528,"nodeType":"ExpressionStatement","src":"10378:36:39"},{"expression":{"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5529,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5413,"src":"10859:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5530,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5418,"src":"10868:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5531,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"10874:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10868:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10859:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5534,"nodeType":"ExpressionStatement","src":"10859:22:39"},{"expression":{"id":5535,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5413,"src":"10902:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5414,"id":5536,"nodeType":"Return","src":"10895:13:39"}]}]},"documentation":{"id":5404,"nodeType":"StructuredDocumentation","src":"6925:312:39","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":5539,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"7251:6:39","nodeType":"FunctionDefinition","parameters":{"id":5411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5406,"mutability":"mutable","name":"x","nameLocation":"7266:1:39","nodeType":"VariableDeclaration","scope":5539,"src":"7258:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5405,"name":"uint256","nodeType":"ElementaryTypeName","src":"7258:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5408,"mutability":"mutable","name":"y","nameLocation":"7277:1:39","nodeType":"VariableDeclaration","scope":5539,"src":"7269:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5407,"name":"uint256","nodeType":"ElementaryTypeName","src":"7269:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5410,"mutability":"mutable","name":"denominator","nameLocation":"7288:11:39","nodeType":"VariableDeclaration","scope":5539,"src":"7280:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5409,"name":"uint256","nodeType":"ElementaryTypeName","src":"7280:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7257:43:39"},"returnParameters":{"id":5414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5413,"mutability":"mutable","name":"result","nameLocation":"7332:6:39","nodeType":"VariableDeclaration","scope":5539,"src":"7324:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5412,"name":"uint256","nodeType":"ElementaryTypeName","src":"7324:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7323:16:39"},"scope":6633,"src":"7242:3683:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5575,"nodeType":"Block","src":"11164:128:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5555,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"11188:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5556,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"11191:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5557,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"11194:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5554,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[5539,5576],"referencedDeclaration":5539,"src":"11181:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11181:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5562,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5549,"src":"11242:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":5561,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"11225:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11225:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5565,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"11262:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5566,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"11265:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5567,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"11268:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5564,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"11255:6:39","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11255:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11283:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11255:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11225:59:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5559,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"11209:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11218:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"11209:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11209:76:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11181:104:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5553,"id":5574,"nodeType":"Return","src":"11174:111:39"}]},"documentation":{"id":5540,"nodeType":"StructuredDocumentation","src":"10931:118:39","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":5576,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"11063:6:39","nodeType":"FunctionDefinition","parameters":{"id":5550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5542,"mutability":"mutable","name":"x","nameLocation":"11078:1:39","nodeType":"VariableDeclaration","scope":5576,"src":"11070:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5541,"name":"uint256","nodeType":"ElementaryTypeName","src":"11070:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5544,"mutability":"mutable","name":"y","nameLocation":"11089:1:39","nodeType":"VariableDeclaration","scope":5576,"src":"11081:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5543,"name":"uint256","nodeType":"ElementaryTypeName","src":"11081:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5546,"mutability":"mutable","name":"denominator","nameLocation":"11100:11:39","nodeType":"VariableDeclaration","scope":5576,"src":"11092:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5545,"name":"uint256","nodeType":"ElementaryTypeName","src":"11092:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5549,"mutability":"mutable","name":"rounding","nameLocation":"11122:8:39","nodeType":"VariableDeclaration","scope":5576,"src":"11113:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":5548,"nodeType":"UserDefinedTypeName","pathNode":{"id":5547,"name":"Rounding","nameLocations":["11113:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"11113:8:39"},"referencedDeclaration":5024,"src":"11113:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11069:62:39"},"returnParameters":{"id":5553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5576,"src":"11155:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5551,"name":"uint256","nodeType":"ElementaryTypeName","src":"11155:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11154:9:39"},"scope":6633,"src":"11054:238:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5625,"nodeType":"Block","src":"11500:245:39","statements":[{"id":5624,"nodeType":"UncheckedBlock","src":"11510:229:39","statements":[{"assignments":[5589,5591],"declarations":[{"constant":false,"id":5589,"mutability":"mutable","name":"high","nameLocation":"11543:4:39","nodeType":"VariableDeclaration","scope":5624,"src":"11535:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5588,"name":"uint256","nodeType":"ElementaryTypeName","src":"11535:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5591,"mutability":"mutable","name":"low","nameLocation":"11557:3:39","nodeType":"VariableDeclaration","scope":5624,"src":"11549:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5590,"name":"uint256","nodeType":"ElementaryTypeName","src":"11549:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5596,"initialValue":{"arguments":[{"id":5593,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5579,"src":"11571:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5594,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5581,"src":"11574:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5592,"name":"mul512","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"11564:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256,uint256)"}},"id":5595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11564:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"11534:42:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5597,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5589,"src":"11594:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11602:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":5599,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"11607:1:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11602:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11594:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5610,"nodeType":"IfStatement","src":"11590:86:39","trueBody":{"id":5609,"nodeType":"Block","src":"11610:66:39","statements":[{"expression":{"arguments":[{"expression":{"id":5605,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"11640:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11646:14:39","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":4417,"src":"11640:20:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5602,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"11628:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11634:5:39","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":4453,"src":"11628:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11628:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5608,"nodeType":"ExpressionStatement","src":"11628:33:39"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5611,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5589,"src":"11697:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":5612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11706:3:39","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5613,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"11712:1:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11706:7:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":5615,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11705:9:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11697:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11696:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5618,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"11719:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":5619,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"11726:1:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11719:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5621,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11718:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11696:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5587,"id":5623,"nodeType":"Return","src":"11689:39:39"}]}]},"documentation":{"id":5577,"nodeType":"StructuredDocumentation","src":"11298:111:39","text":" @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256."},"id":5626,"implemented":true,"kind":"function","modifiers":[],"name":"mulShr","nameLocation":"11423:6:39","nodeType":"FunctionDefinition","parameters":{"id":5584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5579,"mutability":"mutable","name":"x","nameLocation":"11438:1:39","nodeType":"VariableDeclaration","scope":5626,"src":"11430:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5578,"name":"uint256","nodeType":"ElementaryTypeName","src":"11430:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5581,"mutability":"mutable","name":"y","nameLocation":"11449:1:39","nodeType":"VariableDeclaration","scope":5626,"src":"11441:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5580,"name":"uint256","nodeType":"ElementaryTypeName","src":"11441:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5583,"mutability":"mutable","name":"n","nameLocation":"11458:1:39","nodeType":"VariableDeclaration","scope":5626,"src":"11452:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5582,"name":"uint8","nodeType":"ElementaryTypeName","src":"11452:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"11429:31:39"},"returnParameters":{"id":5587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5586,"mutability":"mutable","name":"result","nameLocation":"11492:6:39","nodeType":"VariableDeclaration","scope":5626,"src":"11484:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5585,"name":"uint256","nodeType":"ElementaryTypeName","src":"11484:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11483:16:39"},"scope":6633,"src":"11414:331:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5664,"nodeType":"Block","src":"11963:113:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5642,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5629,"src":"11987:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5643,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5631,"src":"11990:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5644,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"11993:1:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":5641,"name":"mulShr","nodeType":"Identifier","overloadedDeclarations":[5626,5665],"referencedDeclaration":5626,"src":"11980:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint8) pure returns (uint256)"}},"id":5645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11980:15:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5649,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5636,"src":"12031:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":5648,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"12014:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":5650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12014:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5652,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5629,"src":"12051:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5653,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5631,"src":"12054:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12057:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":5655,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"12062:1:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12057:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5651,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"12044:6:39","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":5657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12044:20:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12067:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12044:24:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12014:54:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5646,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"11998:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12007:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"11998:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11998:71:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11980:89:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5640,"id":5663,"nodeType":"Return","src":"11973:96:39"}]},"documentation":{"id":5627,"nodeType":"StructuredDocumentation","src":"11751:109:39","text":" @dev Calculates x * y >> n with full precision, following the selected rounding direction."},"id":5665,"implemented":true,"kind":"function","modifiers":[],"name":"mulShr","nameLocation":"11874:6:39","nodeType":"FunctionDefinition","parameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5629,"mutability":"mutable","name":"x","nameLocation":"11889:1:39","nodeType":"VariableDeclaration","scope":5665,"src":"11881:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5628,"name":"uint256","nodeType":"ElementaryTypeName","src":"11881:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5631,"mutability":"mutable","name":"y","nameLocation":"11900:1:39","nodeType":"VariableDeclaration","scope":5665,"src":"11892:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11892:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5633,"mutability":"mutable","name":"n","nameLocation":"11909:1:39","nodeType":"VariableDeclaration","scope":5665,"src":"11903:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5632,"name":"uint8","nodeType":"ElementaryTypeName","src":"11903:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5636,"mutability":"mutable","name":"rounding","nameLocation":"11921:8:39","nodeType":"VariableDeclaration","scope":5665,"src":"11912:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":5635,"nodeType":"UserDefinedTypeName","pathNode":{"id":5634,"name":"Rounding","nameLocations":["11912:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"11912:8:39"},"referencedDeclaration":5024,"src":"11912:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11880:50:39"},"returnParameters":{"id":5640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5665,"src":"11954:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5638,"name":"uint256","nodeType":"ElementaryTypeName","src":"11954:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11953:9:39"},"scope":6633,"src":"11865:211:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5761,"nodeType":"Block","src":"12710:1849:39","statements":[{"id":5760,"nodeType":"UncheckedBlock","src":"12720:1833:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5675,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"12748:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12753:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12748:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5680,"nodeType":"IfStatement","src":"12744:20:39","trueBody":{"expression":{"hexValue":"30","id":5678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":5674,"id":5679,"nodeType":"Return","src":"12756:8:39"}},{"assignments":[5682],"declarations":[{"constant":false,"id":5682,"mutability":"mutable","name":"remainder","nameLocation":"13243:9:39","nodeType":"VariableDeclaration","scope":5760,"src":"13235:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5681,"name":"uint256","nodeType":"ElementaryTypeName","src":"13235:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5686,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5683,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"13255:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":5684,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"13259:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13255:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13235:25:39"},{"assignments":[5688],"declarations":[{"constant":false,"id":5688,"mutability":"mutable","name":"gcd","nameLocation":"13282:3:39","nodeType":"VariableDeclaration","scope":5760,"src":"13274:11:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5687,"name":"uint256","nodeType":"ElementaryTypeName","src":"13274:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5690,"initialValue":{"id":5689,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"13288:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13274:15:39"},{"assignments":[5692],"declarations":[{"constant":false,"id":5692,"mutability":"mutable","name":"x","nameLocation":"13432:1:39","nodeType":"VariableDeclaration","scope":5760,"src":"13425:8:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5691,"name":"int256","nodeType":"ElementaryTypeName","src":"13425:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":5694,"initialValue":{"hexValue":"30","id":5693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13436:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13425:12:39"},{"assignments":[5696],"declarations":[{"constant":false,"id":5696,"mutability":"mutable","name":"y","nameLocation":"13458:1:39","nodeType":"VariableDeclaration","scope":5760,"src":"13451:8:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5695,"name":"int256","nodeType":"ElementaryTypeName","src":"13451:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":5698,"initialValue":{"hexValue":"31","id":5697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13462:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13451:12:39"},{"body":{"id":5735,"nodeType":"Block","src":"13501:882:39","statements":[{"assignments":[5703],"declarations":[{"constant":false,"id":5703,"mutability":"mutable","name":"quotient","nameLocation":"13527:8:39","nodeType":"VariableDeclaration","scope":5735,"src":"13519:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5702,"name":"uint256","nodeType":"ElementaryTypeName","src":"13519:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5707,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5704,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"13538:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5705,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"13544:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13538:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13519:34:39"},{"expression":{"id":5718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":5708,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"13573:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5709,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"13578:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5710,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13572:16:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":5711,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"13678:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5712,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"13923:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5713,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"13929:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5714,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5703,"src":"13941:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13929:20:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13923:26:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5717,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13591:376:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"13572:395:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5719,"nodeType":"ExpressionStatement","src":"13572:395:39"},{"expression":{"id":5733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":5720,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"13987:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":5721,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"13990:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":5722,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13986:6:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":5723,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"14072:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5724,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"14326:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5725,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5696,"src":"14330:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":5728,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5703,"src":"14341:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14334:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5726,"name":"int256","nodeType":"ElementaryTypeName","src":"14334:6:39","typeDescriptions":{}}},"id":5729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14334:16:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"14330:20:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"14326:24:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":5732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13995:373:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"13986:382:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5734,"nodeType":"ExpressionStatement","src":"13986:382:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5699,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"13485:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":5700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13498:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13485:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5736,"nodeType":"WhileStatement","src":"13478:905:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5737,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"14401:3:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":5738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14408:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14401:8:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5742,"nodeType":"IfStatement","src":"14397:22:39","trueBody":{"expression":{"hexValue":"30","id":5740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14418:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":5674,"id":5741,"nodeType":"Return","src":"14411:8:39"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5744,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"14470:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":5745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14474:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14470:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5747,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5670,"src":"14477:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":5751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"14489:2:39","subExpression":{"id":5750,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"14490:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14481:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5748,"name":"uint256","nodeType":"ElementaryTypeName","src":"14481:7:39","typeDescriptions":{}}},"id":5752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14481:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14477:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":5756,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"14502:1:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14494:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5754,"name":"uint256","nodeType":"ElementaryTypeName","src":"14494:7:39","typeDescriptions":{}}},"id":5757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14494:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5743,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"14462:7:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":5758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14462:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5674,"id":5759,"nodeType":"Return","src":"14455:50:39"}]}]},"documentation":{"id":5666,"nodeType":"StructuredDocumentation","src":"12082:553:39","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}."},"id":5762,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"12649:6:39","nodeType":"FunctionDefinition","parameters":{"id":5671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5668,"mutability":"mutable","name":"a","nameLocation":"12664:1:39","nodeType":"VariableDeclaration","scope":5762,"src":"12656:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5667,"name":"uint256","nodeType":"ElementaryTypeName","src":"12656:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5670,"mutability":"mutable","name":"n","nameLocation":"12675:1:39","nodeType":"VariableDeclaration","scope":5762,"src":"12667:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5669,"name":"uint256","nodeType":"ElementaryTypeName","src":"12667:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12655:22:39"},"returnParameters":{"id":5674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5762,"src":"12701:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5672,"name":"uint256","nodeType":"ElementaryTypeName","src":"12701:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12700:9:39"},"scope":6633,"src":"12640:1919:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5782,"nodeType":"Block","src":"15159:82:39","statements":[{"id":5781,"nodeType":"UncheckedBlock","src":"15169:66:39","statements":[{"expression":{"arguments":[{"id":5774,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"15212:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5775,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"15215:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":5776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15219:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15215:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5778,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"15222:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5772,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"15200:4:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15205:6:39","memberName":"modExp","nodeType":"MemberAccess","referencedDeclaration":5819,"src":"15200:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15200:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5771,"id":5780,"nodeType":"Return","src":"15193:31:39"}]}]},"documentation":{"id":5763,"nodeType":"StructuredDocumentation","src":"14565:514:39","text":" @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`."},"id":5783,"implemented":true,"kind":"function","modifiers":[],"name":"invModPrime","nameLocation":"15093:11:39","nodeType":"FunctionDefinition","parameters":{"id":5768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5765,"mutability":"mutable","name":"a","nameLocation":"15113:1:39","nodeType":"VariableDeclaration","scope":5783,"src":"15105:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5764,"name":"uint256","nodeType":"ElementaryTypeName","src":"15105:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5767,"mutability":"mutable","name":"p","nameLocation":"15124:1:39","nodeType":"VariableDeclaration","scope":5783,"src":"15116:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5766,"name":"uint256","nodeType":"ElementaryTypeName","src":"15116:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15104:22:39"},"returnParameters":{"id":5771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5783,"src":"15150:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5769,"name":"uint256","nodeType":"ElementaryTypeName","src":"15150:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15149:9:39"},"scope":6633,"src":"15084:157:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5818,"nodeType":"Block","src":"16011:174:39","statements":[{"assignments":[5796,5798],"declarations":[{"constant":false,"id":5796,"mutability":"mutable","name":"success","nameLocation":"16027:7:39","nodeType":"VariableDeclaration","scope":5818,"src":"16022:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5795,"name":"bool","nodeType":"ElementaryTypeName","src":"16022:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5798,"mutability":"mutable","name":"result","nameLocation":"16044:6:39","nodeType":"VariableDeclaration","scope":5818,"src":"16036:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5797,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5804,"initialValue":{"arguments":[{"id":5800,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5786,"src":"16064:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5801,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5788,"src":"16067:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5802,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5790,"src":"16070:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5799,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[5843,5925],"referencedDeclaration":5843,"src":"16054:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"16021:51:39"},{"condition":{"id":5806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16086:8:39","subExpression":{"id":5805,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"16087:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5815,"nodeType":"IfStatement","src":"16082:74:39","trueBody":{"id":5814,"nodeType":"Block","src":"16096:60:39","statements":[{"expression":{"arguments":[{"expression":{"id":5810,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"16122:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16128:16:39","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":4421,"src":"16122:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5807,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"16110:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16116:5:39","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":4453,"src":"16110:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16110:35:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5813,"nodeType":"ExpressionStatement","src":"16110:35:39"}]}},{"expression":{"id":5816,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5798,"src":"16172:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5794,"id":5817,"nodeType":"Return","src":"16165:13:39"}]},"documentation":{"id":5784,"nodeType":"StructuredDocumentation","src":"15247:678:39","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":5819,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"15939:6:39","nodeType":"FunctionDefinition","parameters":{"id":5791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5786,"mutability":"mutable","name":"b","nameLocation":"15954:1:39","nodeType":"VariableDeclaration","scope":5819,"src":"15946:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5785,"name":"uint256","nodeType":"ElementaryTypeName","src":"15946:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5788,"mutability":"mutable","name":"e","nameLocation":"15965:1:39","nodeType":"VariableDeclaration","scope":5819,"src":"15957:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5787,"name":"uint256","nodeType":"ElementaryTypeName","src":"15957:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5790,"mutability":"mutable","name":"m","nameLocation":"15976:1:39","nodeType":"VariableDeclaration","scope":5819,"src":"15968:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5789,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15945:33:39"},"returnParameters":{"id":5794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5819,"src":"16002:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"16002:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16001:9:39"},"scope":6633,"src":"15930:255:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5842,"nodeType":"Block","src":"17039:1493:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5833,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5826,"src":"17053:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17058:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17053:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5840,"nodeType":"IfStatement","src":"17049:29:39","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":5836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17069:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":5837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17076:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5838,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17068:10:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":5832,"id":5839,"nodeType":"Return","src":"17061:17:39"}},{"AST":{"nativeSrc":"17113:1413:39","nodeType":"YulBlock","src":"17113:1413:39","statements":[{"nativeSrc":"17127:22:39","nodeType":"YulVariableDeclaration","src":"17127:22:39","value":{"arguments":[{"kind":"number","nativeSrc":"17144:4:39","nodeType":"YulLiteral","src":"17144:4:39","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17138:5:39","nodeType":"YulIdentifier","src":"17138:5:39"},"nativeSrc":"17138:11:39","nodeType":"YulFunctionCall","src":"17138:11:39"},"variables":[{"name":"ptr","nativeSrc":"17131:3:39","nodeType":"YulTypedName","src":"17131:3:39","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"18057:3:39","nodeType":"YulIdentifier","src":"18057:3:39"},{"kind":"number","nativeSrc":"18062:4:39","nodeType":"YulLiteral","src":"18062:4:39","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"18050:6:39","nodeType":"YulIdentifier","src":"18050:6:39"},"nativeSrc":"18050:17:39","nodeType":"YulFunctionCall","src":"18050:17:39"},"nativeSrc":"18050:17:39","nodeType":"YulExpressionStatement","src":"18050:17:39"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"18091:3:39","nodeType":"YulIdentifier","src":"18091:3:39"},{"kind":"number","nativeSrc":"18096:4:39","nodeType":"YulLiteral","src":"18096:4:39","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18087:3:39","nodeType":"YulIdentifier","src":"18087:3:39"},"nativeSrc":"18087:14:39","nodeType":"YulFunctionCall","src":"18087:14:39"},{"kind":"number","nativeSrc":"18103:4:39","nodeType":"YulLiteral","src":"18103:4:39","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"18080:6:39","nodeType":"YulIdentifier","src":"18080:6:39"},"nativeSrc":"18080:28:39","nodeType":"YulFunctionCall","src":"18080:28:39"},"nativeSrc":"18080:28:39","nodeType":"YulExpressionStatement","src":"18080:28:39"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"18132:3:39","nodeType":"YulIdentifier","src":"18132:3:39"},{"kind":"number","nativeSrc":"18137:4:39","nodeType":"YulLiteral","src":"18137:4:39","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18128:3:39","nodeType":"YulIdentifier","src":"18128:3:39"},"nativeSrc":"18128:14:39","nodeType":"YulFunctionCall","src":"18128:14:39"},{"kind":"number","nativeSrc":"18144:4:39","nodeType":"YulLiteral","src":"18144:4:39","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"18121:6:39","nodeType":"YulIdentifier","src":"18121:6:39"},"nativeSrc":"18121:28:39","nodeType":"YulFunctionCall","src":"18121:28:39"},"nativeSrc":"18121:28:39","nodeType":"YulExpressionStatement","src":"18121:28:39"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"18173:3:39","nodeType":"YulIdentifier","src":"18173:3:39"},{"kind":"number","nativeSrc":"18178:4:39","nodeType":"YulLiteral","src":"18178:4:39","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18169:3:39","nodeType":"YulIdentifier","src":"18169:3:39"},"nativeSrc":"18169:14:39","nodeType":"YulFunctionCall","src":"18169:14:39"},{"name":"b","nativeSrc":"18185:1:39","nodeType":"YulIdentifier","src":"18185:1:39"}],"functionName":{"name":"mstore","nativeSrc":"18162:6:39","nodeType":"YulIdentifier","src":"18162:6:39"},"nativeSrc":"18162:25:39","nodeType":"YulFunctionCall","src":"18162:25:39"},"nativeSrc":"18162:25:39","nodeType":"YulExpressionStatement","src":"18162:25:39"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"18211:3:39","nodeType":"YulIdentifier","src":"18211:3:39"},{"kind":"number","nativeSrc":"18216:4:39","nodeType":"YulLiteral","src":"18216:4:39","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"18207:3:39","nodeType":"YulIdentifier","src":"18207:3:39"},"nativeSrc":"18207:14:39","nodeType":"YulFunctionCall","src":"18207:14:39"},{"name":"e","nativeSrc":"18223:1:39","nodeType":"YulIdentifier","src":"18223:1:39"}],"functionName":{"name":"mstore","nativeSrc":"18200:6:39","nodeType":"YulIdentifier","src":"18200:6:39"},"nativeSrc":"18200:25:39","nodeType":"YulFunctionCall","src":"18200:25:39"},"nativeSrc":"18200:25:39","nodeType":"YulExpressionStatement","src":"18200:25:39"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"18249:3:39","nodeType":"YulIdentifier","src":"18249:3:39"},{"kind":"number","nativeSrc":"18254:4:39","nodeType":"YulLiteral","src":"18254:4:39","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"18245:3:39","nodeType":"YulIdentifier","src":"18245:3:39"},"nativeSrc":"18245:14:39","nodeType":"YulFunctionCall","src":"18245:14:39"},{"name":"m","nativeSrc":"18261:1:39","nodeType":"YulIdentifier","src":"18261:1:39"}],"functionName":{"name":"mstore","nativeSrc":"18238:6:39","nodeType":"YulIdentifier","src":"18238:6:39"},"nativeSrc":"18238:25:39","nodeType":"YulFunctionCall","src":"18238:25:39"},"nativeSrc":"18238:25:39","nodeType":"YulExpressionStatement","src":"18238:25:39"},{"nativeSrc":"18425:57:39","nodeType":"YulAssignment","src":"18425:57:39","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18447:3:39","nodeType":"YulIdentifier","src":"18447:3:39"},"nativeSrc":"18447:5:39","nodeType":"YulFunctionCall","src":"18447:5:39"},{"kind":"number","nativeSrc":"18454:4:39","nodeType":"YulLiteral","src":"18454:4:39","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"18460:3:39","nodeType":"YulIdentifier","src":"18460:3:39"},{"kind":"number","nativeSrc":"18465:4:39","nodeType":"YulLiteral","src":"18465:4:39","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"18471:4:39","nodeType":"YulLiteral","src":"18471:4:39","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18477:4:39","nodeType":"YulLiteral","src":"18477:4:39","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"18436:10:39","nodeType":"YulIdentifier","src":"18436:10:39"},"nativeSrc":"18436:46:39","nodeType":"YulFunctionCall","src":"18436:46:39"},"variableNames":[{"name":"success","nativeSrc":"18425:7:39","nodeType":"YulIdentifier","src":"18425:7:39"}]},{"nativeSrc":"18495:21:39","nodeType":"YulAssignment","src":"18495:21:39","value":{"arguments":[{"kind":"number","nativeSrc":"18511:4:39","nodeType":"YulLiteral","src":"18511:4:39","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18505:5:39","nodeType":"YulIdentifier","src":"18505:5:39"},"nativeSrc":"18505:11:39","nodeType":"YulFunctionCall","src":"18505:11:39"},"variableNames":[{"name":"result","nativeSrc":"18495:6:39","nodeType":"YulIdentifier","src":"18495:6:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":5822,"isOffset":false,"isSlot":false,"src":"18185:1:39","valueSize":1},{"declaration":5824,"isOffset":false,"isSlot":false,"src":"18223:1:39","valueSize":1},{"declaration":5826,"isOffset":false,"isSlot":false,"src":"18261:1:39","valueSize":1},{"declaration":5831,"isOffset":false,"isSlot":false,"src":"18495:6:39","valueSize":1},{"declaration":5829,"isOffset":false,"isSlot":false,"src":"18425:7:39","valueSize":1}],"flags":["memory-safe"],"id":5841,"nodeType":"InlineAssembly","src":"17088:1438:39"}]},"documentation":{"id":5820,"nodeType":"StructuredDocumentation","src":"16191:738:39","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":5843,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"16943:9:39","nodeType":"FunctionDefinition","parameters":{"id":5827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5822,"mutability":"mutable","name":"b","nameLocation":"16961:1:39","nodeType":"VariableDeclaration","scope":5843,"src":"16953:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5821,"name":"uint256","nodeType":"ElementaryTypeName","src":"16953:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5824,"mutability":"mutable","name":"e","nameLocation":"16972:1:39","nodeType":"VariableDeclaration","scope":5843,"src":"16964:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5823,"name":"uint256","nodeType":"ElementaryTypeName","src":"16964:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5826,"mutability":"mutable","name":"m","nameLocation":"16983:1:39","nodeType":"VariableDeclaration","scope":5843,"src":"16975:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5825,"name":"uint256","nodeType":"ElementaryTypeName","src":"16975:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16952:33:39"},"returnParameters":{"id":5832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5829,"mutability":"mutable","name":"success","nameLocation":"17014:7:39","nodeType":"VariableDeclaration","scope":5843,"src":"17009:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5828,"name":"bool","nodeType":"ElementaryTypeName","src":"17009:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5831,"mutability":"mutable","name":"result","nameLocation":"17031:6:39","nodeType":"VariableDeclaration","scope":5843,"src":"17023:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5830,"name":"uint256","nodeType":"ElementaryTypeName","src":"17023:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17008:30:39"},"scope":6633,"src":"16934:1598:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5878,"nodeType":"Block","src":"18729:179:39","statements":[{"assignments":[5856,5858],"declarations":[{"constant":false,"id":5856,"mutability":"mutable","name":"success","nameLocation":"18745:7:39","nodeType":"VariableDeclaration","scope":5878,"src":"18740:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5855,"name":"bool","nodeType":"ElementaryTypeName","src":"18740:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5858,"mutability":"mutable","name":"result","nameLocation":"18767:6:39","nodeType":"VariableDeclaration","scope":5878,"src":"18754:19:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5857,"name":"bytes","nodeType":"ElementaryTypeName","src":"18754:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5864,"initialValue":{"arguments":[{"id":5860,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5846,"src":"18787:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5861,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5848,"src":"18790:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5862,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5850,"src":"18793:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5859,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[5843,5925],"referencedDeclaration":5925,"src":"18777:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18777:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"18739:56:39"},{"condition":{"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18809:8:39","subExpression":{"id":5865,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5856,"src":"18810:7:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5875,"nodeType":"IfStatement","src":"18805:74:39","trueBody":{"id":5874,"nodeType":"Block","src":"18819:60:39","statements":[{"expression":{"arguments":[{"expression":{"id":5870,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"18845:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18851:16:39","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":4421,"src":"18845:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5867,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"18833:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$4454_$","typeString":"type(library Panic)"}},"id":5869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18839:5:39","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":4453,"src":"18833:11:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18833:35:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5873,"nodeType":"ExpressionStatement","src":"18833:35:39"}]}},{"expression":{"id":5876,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5858,"src":"18895:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5854,"id":5877,"nodeType":"Return","src":"18888:13:39"}]},"documentation":{"id":5844,"nodeType":"StructuredDocumentation","src":"18538:85:39","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":5879,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"18637:6:39","nodeType":"FunctionDefinition","parameters":{"id":5851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5846,"mutability":"mutable","name":"b","nameLocation":"18657:1:39","nodeType":"VariableDeclaration","scope":5879,"src":"18644:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5845,"name":"bytes","nodeType":"ElementaryTypeName","src":"18644:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5848,"mutability":"mutable","name":"e","nameLocation":"18673:1:39","nodeType":"VariableDeclaration","scope":5879,"src":"18660:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5847,"name":"bytes","nodeType":"ElementaryTypeName","src":"18660:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5850,"mutability":"mutable","name":"m","nameLocation":"18689:1:39","nodeType":"VariableDeclaration","scope":5879,"src":"18676:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5849,"name":"bytes","nodeType":"ElementaryTypeName","src":"18676:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18643:48:39"},"returnParameters":{"id":5854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5879,"src":"18715:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5852,"name":"bytes","nodeType":"ElementaryTypeName","src":"18715:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18714:14:39"},"scope":6633,"src":"18628:280:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5924,"nodeType":"Block","src":"19162:771:39","statements":[{"condition":{"arguments":[{"id":5894,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"19187:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5893,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5958,"src":"19176:10:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":5895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19176:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5903,"nodeType":"IfStatement","src":"19172:47:39","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":5896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19199:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":5899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19216:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19206:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5897,"name":"bytes","nodeType":"ElementaryTypeName","src":"19210:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19206:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":5901,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19198:21:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":5892,"id":5902,"nodeType":"Return","src":"19191:28:39"}},{"assignments":[5905],"declarations":[{"constant":false,"id":5905,"mutability":"mutable","name":"mLen","nameLocation":"19238:4:39","nodeType":"VariableDeclaration","scope":5924,"src":"19230:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5904,"name":"uint256","nodeType":"ElementaryTypeName","src":"19230:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5908,"initialValue":{"expression":{"id":5906,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"19245:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19247:6:39","memberName":"length","nodeType":"MemberAccess","src":"19245:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19230:23:39"},{"expression":{"id":5921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5909,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"19335:6:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":5912,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"19361:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19363:6:39","memberName":"length","nodeType":"MemberAccess","src":"19361:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5914,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5884,"src":"19371:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19373:6:39","memberName":"length","nodeType":"MemberAccess","src":"19371:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5916,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"19381:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5917,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"19387:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5918,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5884,"src":"19390:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5919,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5886,"src":"19393:1:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5910,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19344:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19348:12:39","memberName":"encodePacked","nodeType":"MemberAccess","src":"19344:16:39","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19344:51:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"19335:60:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5922,"nodeType":"ExpressionStatement","src":"19335:60:39"},{"AST":{"nativeSrc":"19431:496:39","nodeType":"YulBlock","src":"19431:496:39","statements":[{"nativeSrc":"19445:32:39","nodeType":"YulVariableDeclaration","src":"19445:32:39","value":{"arguments":[{"name":"result","nativeSrc":"19464:6:39","nodeType":"YulIdentifier","src":"19464:6:39"},{"kind":"number","nativeSrc":"19472:4:39","nodeType":"YulLiteral","src":"19472:4:39","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19460:3:39","nodeType":"YulIdentifier","src":"19460:3:39"},"nativeSrc":"19460:17:39","nodeType":"YulFunctionCall","src":"19460:17:39"},"variables":[{"name":"dataPtr","nativeSrc":"19449:7:39","nodeType":"YulTypedName","src":"19449:7:39","type":""}]},{"nativeSrc":"19567:73:39","nodeType":"YulAssignment","src":"19567:73:39","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19589:3:39","nodeType":"YulIdentifier","src":"19589:3:39"},"nativeSrc":"19589:5:39","nodeType":"YulFunctionCall","src":"19589:5:39"},{"kind":"number","nativeSrc":"19596:4:39","nodeType":"YulLiteral","src":"19596:4:39","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"19602:7:39","nodeType":"YulIdentifier","src":"19602:7:39"},{"arguments":[{"name":"result","nativeSrc":"19617:6:39","nodeType":"YulIdentifier","src":"19617:6:39"}],"functionName":{"name":"mload","nativeSrc":"19611:5:39","nodeType":"YulIdentifier","src":"19611:5:39"},"nativeSrc":"19611:13:39","nodeType":"YulFunctionCall","src":"19611:13:39"},{"name":"dataPtr","nativeSrc":"19626:7:39","nodeType":"YulIdentifier","src":"19626:7:39"},{"name":"mLen","nativeSrc":"19635:4:39","nodeType":"YulIdentifier","src":"19635:4:39"}],"functionName":{"name":"staticcall","nativeSrc":"19578:10:39","nodeType":"YulIdentifier","src":"19578:10:39"},"nativeSrc":"19578:62:39","nodeType":"YulFunctionCall","src":"19578:62:39"},"variableNames":[{"name":"success","nativeSrc":"19567:7:39","nodeType":"YulIdentifier","src":"19567:7:39"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"19796:6:39","nodeType":"YulIdentifier","src":"19796:6:39"},{"name":"mLen","nativeSrc":"19804:4:39","nodeType":"YulIdentifier","src":"19804:4:39"}],"functionName":{"name":"mstore","nativeSrc":"19789:6:39","nodeType":"YulIdentifier","src":"19789:6:39"},"nativeSrc":"19789:20:39","nodeType":"YulFunctionCall","src":"19789:20:39"},"nativeSrc":"19789:20:39","nodeType":"YulExpressionStatement","src":"19789:20:39"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19892:4:39","nodeType":"YulLiteral","src":"19892:4:39","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"19902:7:39","nodeType":"YulIdentifier","src":"19902:7:39"},{"name":"mLen","nativeSrc":"19911:4:39","nodeType":"YulIdentifier","src":"19911:4:39"}],"functionName":{"name":"add","nativeSrc":"19898:3:39","nodeType":"YulIdentifier","src":"19898:3:39"},"nativeSrc":"19898:18:39","nodeType":"YulFunctionCall","src":"19898:18:39"}],"functionName":{"name":"mstore","nativeSrc":"19885:6:39","nodeType":"YulIdentifier","src":"19885:6:39"},"nativeSrc":"19885:32:39","nodeType":"YulFunctionCall","src":"19885:32:39"},"nativeSrc":"19885:32:39","nodeType":"YulExpressionStatement","src":"19885:32:39"}]},"evmVersion":"cancun","externalReferences":[{"declaration":5905,"isOffset":false,"isSlot":false,"src":"19635:4:39","valueSize":1},{"declaration":5905,"isOffset":false,"isSlot":false,"src":"19804:4:39","valueSize":1},{"declaration":5905,"isOffset":false,"isSlot":false,"src":"19911:4:39","valueSize":1},{"declaration":5891,"isOffset":false,"isSlot":false,"src":"19464:6:39","valueSize":1},{"declaration":5891,"isOffset":false,"isSlot":false,"src":"19617:6:39","valueSize":1},{"declaration":5891,"isOffset":false,"isSlot":false,"src":"19796:6:39","valueSize":1},{"declaration":5889,"isOffset":false,"isSlot":false,"src":"19567:7:39","valueSize":1}],"flags":["memory-safe"],"id":5923,"nodeType":"InlineAssembly","src":"19406:521:39"}]},"documentation":{"id":5880,"nodeType":"StructuredDocumentation","src":"18914:88:39","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":5925,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"19016:9:39","nodeType":"FunctionDefinition","parameters":{"id":5887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5882,"mutability":"mutable","name":"b","nameLocation":"19048:1:39","nodeType":"VariableDeclaration","scope":5925,"src":"19035:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5881,"name":"bytes","nodeType":"ElementaryTypeName","src":"19035:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5884,"mutability":"mutable","name":"e","nameLocation":"19072:1:39","nodeType":"VariableDeclaration","scope":5925,"src":"19059:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5883,"name":"bytes","nodeType":"ElementaryTypeName","src":"19059:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5886,"mutability":"mutable","name":"m","nameLocation":"19096:1:39","nodeType":"VariableDeclaration","scope":5925,"src":"19083:14:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5885,"name":"bytes","nodeType":"ElementaryTypeName","src":"19083:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19025:78:39"},"returnParameters":{"id":5892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5889,"mutability":"mutable","name":"success","nameLocation":"19132:7:39","nodeType":"VariableDeclaration","scope":5925,"src":"19127:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5888,"name":"bool","nodeType":"ElementaryTypeName","src":"19127:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5891,"mutability":"mutable","name":"result","nameLocation":"19154:6:39","nodeType":"VariableDeclaration","scope":5925,"src":"19141:19:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5890,"name":"bytes","nodeType":"ElementaryTypeName","src":"19141:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19126:35:39"},"scope":6633,"src":"19007:926:39","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5957,"nodeType":"Block","src":"20088:176:39","statements":[{"body":{"id":5953,"nodeType":"Block","src":"20145:92:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":5948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5944,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"20163:9:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5946,"indexExpression":{"id":5945,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"20173:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20163:12:39","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":5947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20179:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20163:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5952,"nodeType":"IfStatement","src":"20159:68:39","trueBody":{"id":5951,"nodeType":"Block","src":"20182:45:39","statements":[{"expression":{"hexValue":"66616c7365","id":5949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20207:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":5932,"id":5950,"nodeType":"Return","src":"20200:12:39"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"20118:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5938,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"20122:9:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20132:6:39","memberName":"length","nodeType":"MemberAccess","src":"20122:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20118:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5954,"initializationExpression":{"assignments":[5934],"declarations":[{"constant":false,"id":5934,"mutability":"mutable","name":"i","nameLocation":"20111:1:39","nodeType":"VariableDeclaration","scope":5954,"src":"20103:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5933,"name":"uint256","nodeType":"ElementaryTypeName","src":"20103:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5936,"initialValue":{"hexValue":"30","id":5935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"20103:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20140:3:39","subExpression":{"id":5941,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"20142:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5943,"nodeType":"ExpressionStatement","src":"20140:3:39"},"nodeType":"ForStatement","src":"20098:139:39"},{"expression":{"hexValue":"74727565","id":5955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20253:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5932,"id":5956,"nodeType":"Return","src":"20246:11:39"}]},"documentation":{"id":5926,"nodeType":"StructuredDocumentation","src":"19939:72:39","text":" @dev Returns whether the provided byte array is zero."},"id":5958,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"20025:10:39","nodeType":"FunctionDefinition","parameters":{"id":5929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5928,"mutability":"mutable","name":"byteArray","nameLocation":"20049:9:39","nodeType":"VariableDeclaration","scope":5958,"src":"20036:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5927,"name":"bytes","nodeType":"ElementaryTypeName","src":"20036:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20035:24:39"},"returnParameters":{"id":5932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5958,"src":"20082:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5930,"name":"bool","nodeType":"ElementaryTypeName","src":"20082:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20081:6:39"},"scope":6633,"src":"20016:248:39","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":6176,"nodeType":"Block","src":"20624:5124:39","statements":[{"id":6175,"nodeType":"UncheckedBlock","src":"20634:5108:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5966,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"20728:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":5967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20733:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20728:6:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5972,"nodeType":"IfStatement","src":"20724:53:39","trueBody":{"id":5971,"nodeType":"Block","src":"20736:41:39","statements":[{"expression":{"id":5969,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"20761:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5965,"id":5970,"nodeType":"Return","src":"20754:8:39"}]}},{"assignments":[5974],"declarations":[{"constant":false,"id":5974,"mutability":"mutable","name":"aa","nameLocation":"21712:2:39","nodeType":"VariableDeclaration","scope":6175,"src":"21704:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5973,"name":"uint256","nodeType":"ElementaryTypeName","src":"21704:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5976,"initialValue":{"id":5975,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"21717:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21704:14:39"},{"assignments":[5978],"declarations":[{"constant":false,"id":5978,"mutability":"mutable","name":"xn","nameLocation":"21740:2:39","nodeType":"VariableDeclaration","scope":6175,"src":"21732:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5977,"name":"uint256","nodeType":"ElementaryTypeName","src":"21732:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5980,"initialValue":{"hexValue":"31","id":5979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21745:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"21732:14:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5981,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"21765:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21772:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21777:3:39","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"21772:8:39","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":5985,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21771:10:39","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"21765:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5996,"nodeType":"IfStatement","src":"21761:92:39","trueBody":{"id":5995,"nodeType":"Block","src":"21783:70:39","statements":[{"expression":{"id":5989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5987,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"21801:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":5988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21808:3:39","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"21801:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5990,"nodeType":"ExpressionStatement","src":"21801:10:39"},{"expression":{"id":5993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5991,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"21829:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":5992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21836:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"21829:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5994,"nodeType":"ExpressionStatement","src":"21829:9:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5997,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"21870:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":6000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21877:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":5999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21882:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"21877:7:39","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":6001,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21876:9:39","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"21870:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6012,"nodeType":"IfStatement","src":"21866:90:39","trueBody":{"id":6011,"nodeType":"Block","src":"21887:69:39","statements":[{"expression":{"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6003,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"21905:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":6004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21912:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"21905:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6006,"nodeType":"ExpressionStatement","src":"21905:9:39"},{"expression":{"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6007,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"21932:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":6008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21939:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21932:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6010,"nodeType":"ExpressionStatement","src":"21932:9:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6013,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"21973:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":6016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21980:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":6015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21985:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21980:7:39","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":6017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21979:9:39","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"21973:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6028,"nodeType":"IfStatement","src":"21969:90:39","trueBody":{"id":6027,"nodeType":"Block","src":"21990:69:39","statements":[{"expression":{"id":6021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6019,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22008:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":6020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22015:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22008:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6022,"nodeType":"ExpressionStatement","src":"22008:9:39"},{"expression":{"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6023,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22035:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":6024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22042:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"22035:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6026,"nodeType":"ExpressionStatement","src":"22035:9:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6029,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22076:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":6032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22083:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":6031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22088:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"22083:7:39","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":6033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22082:9:39","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"22076:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6044,"nodeType":"IfStatement","src":"22072:89:39","trueBody":{"id":6043,"nodeType":"Block","src":"22093:68:39","statements":[{"expression":{"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6035,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22111:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":6036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22118:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"22111:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6038,"nodeType":"ExpressionStatement","src":"22111:9:39"},{"expression":{"id":6041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6039,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22138:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":6040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22145:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"22138:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6042,"nodeType":"ExpressionStatement","src":"22138:8:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6045,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22178:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":6048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22185:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":6047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22190:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"22185:6:39","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":6049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22184:8:39","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"22178:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"IfStatement","src":"22174:87:39","trueBody":{"id":6059,"nodeType":"Block","src":"22194:67:39","statements":[{"expression":{"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6051,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22212:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":6052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22219:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"22212:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6054,"nodeType":"ExpressionStatement","src":"22212:8:39"},{"expression":{"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6055,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22238:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":6056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"22238:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6058,"nodeType":"ExpressionStatement","src":"22238:8:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6061,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22278:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":6064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22285:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22290:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"22285:6:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":6065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22284:8:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"22278:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6076,"nodeType":"IfStatement","src":"22274:87:39","trueBody":{"id":6075,"nodeType":"Block","src":"22294:67:39","statements":[{"expression":{"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6067,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22312:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":6068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22319:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"22312:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6070,"nodeType":"ExpressionStatement","src":"22312:8:39"},{"expression":{"id":6073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6071,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22338:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":6072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22345:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22338:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6074,"nodeType":"ExpressionStatement","src":"22338:8:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6077,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"22378:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":6080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22385:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":6079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22390:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22385:6:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":6081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22384:8:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"22378:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6088,"nodeType":"IfStatement","src":"22374:61:39","trueBody":{"id":6087,"nodeType":"Block","src":"22394:41:39","statements":[{"expression":{"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6083,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22412:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":6084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22419:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22412:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6086,"nodeType":"ExpressionStatement","src":"22412:8:39"}]}},{"expression":{"id":6096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6089,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22855:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":6090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22861:1:39","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6091,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"22865:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22861:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22860:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22872:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22860:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22855:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6097,"nodeType":"ExpressionStatement","src":"22855:18:39"},{"expression":{"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6098,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24760:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6099,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24766:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6100,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"24771:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6101,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24775:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24771:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24766:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24765:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24782:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24765:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24760:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6108,"nodeType":"ExpressionStatement","src":"24760:23:39"},{"expression":{"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6109,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24869:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6110,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24875:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6111,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"24880:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6112,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24884:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24880:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24875:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6115,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24874:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24891:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24874:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24869:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6119,"nodeType":"ExpressionStatement","src":"24869:23:39"},{"expression":{"id":6129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6120,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24980:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6121,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24986:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6122,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"24991:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6123,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"24995:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24991:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24986:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24985:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25002:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24985:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24980:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6130,"nodeType":"ExpressionStatement","src":"24980:23:39"},{"expression":{"id":6140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6131,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25089:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6132,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25095:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6133,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"25100:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6134,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25104:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25100:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25095:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6137,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25094:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25111:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25094:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25089:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6141,"nodeType":"ExpressionStatement","src":"25089:23:39"},{"expression":{"id":6151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6142,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25199:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6143,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25205:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6144,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"25210:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6145,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25214:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25210:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25205:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6148,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25204:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25221:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25204:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25199:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6152,"nodeType":"ExpressionStatement","src":"25199:23:39"},{"expression":{"id":6162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6153,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25309:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6154,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25315:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6155,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"25320:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6156,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25324:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25320:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25315:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6159,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25314:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":6160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25314:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25309:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6163,"nodeType":"ExpressionStatement","src":"25309:23:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6164,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25698:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6167,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25719:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6168,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"25724:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6169,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"25728:2:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25724:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25719:11:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6165,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"25703:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25712:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"25703:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25703:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25698:33:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5965,"id":6174,"nodeType":"Return","src":"25691:40:39"}]}]},"documentation":{"id":5959,"nodeType":"StructuredDocumentation","src":"20270:292:39","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":6177,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"20576:4:39","nodeType":"FunctionDefinition","parameters":{"id":5962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5961,"mutability":"mutable","name":"a","nameLocation":"20589:1:39","nodeType":"VariableDeclaration","scope":6177,"src":"20581:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5960,"name":"uint256","nodeType":"ElementaryTypeName","src":"20581:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20580:11:39"},"returnParameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6177,"src":"20615:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5963,"name":"uint256","nodeType":"ElementaryTypeName","src":"20615:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20614:9:39"},"scope":6633,"src":"20567:5181:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6210,"nodeType":"Block","src":"25921:171:39","statements":[{"id":6209,"nodeType":"UncheckedBlock","src":"25931:155:39","statements":[{"assignments":[6189],"declarations":[{"constant":false,"id":6189,"mutability":"mutable","name":"result","nameLocation":"25963:6:39","nodeType":"VariableDeclaration","scope":6209,"src":"25955:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6188,"name":"uint256","nodeType":"ElementaryTypeName","src":"25955:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6193,"initialValue":{"arguments":[{"id":6191,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6180,"src":"25977:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6190,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[6177,6211],"referencedDeclaration":6177,"src":"25972:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25972:7:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25955:24:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6194,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"26000:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6198,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6183,"src":"26042:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":6197,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"26025:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26025:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6200,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"26055:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6201,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6189,"src":"26064:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26055:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6203,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6180,"src":"26073:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26055:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26025:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6195,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26009:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26018:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26009:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26009:66:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26000:75:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6187,"id":6208,"nodeType":"Return","src":"25993:82:39"}]}]},"documentation":{"id":6178,"nodeType":"StructuredDocumentation","src":"25754:86:39","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":6211,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"25854:4:39","nodeType":"FunctionDefinition","parameters":{"id":6184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6180,"mutability":"mutable","name":"a","nameLocation":"25867:1:39","nodeType":"VariableDeclaration","scope":6211,"src":"25859:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6179,"name":"uint256","nodeType":"ElementaryTypeName","src":"25859:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6183,"mutability":"mutable","name":"rounding","nameLocation":"25879:8:39","nodeType":"VariableDeclaration","scope":6211,"src":"25870:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":6182,"nodeType":"UserDefinedTypeName","pathNode":{"id":6181,"name":"Rounding","nameLocations":["25870:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"25870:8:39"},"referencedDeclaration":5024,"src":"25870:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"25858:30:39"},"returnParameters":{"id":6187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6211,"src":"25912:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6185,"name":"uint256","nodeType":"ElementaryTypeName","src":"25912:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25911:9:39"},"scope":6633,"src":"25845:247:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6301,"nodeType":"Block","src":"26281:2334:39","statements":[{"expression":{"id":6228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6219,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26363:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6222,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"26383:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666666666666666666666666666666666666666666666666666666666666666","id":6223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26387:34:39","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"value":"0xffffffffffffffffffffffffffffffff"},"src":"26383:38:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6220,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26367:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26376:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26367:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26367:55:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"37","id":6226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26426:1:39","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"26367:60:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:64:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6229,"nodeType":"ExpressionStatement","src":"26363:64:39"},{"expression":{"id":6242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6230,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26503:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6233,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"26525:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6234,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26530:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26525:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26524:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307866666666666666666666666666666666","id":6237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26535:18:39","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xffffffffffffffff"},"src":"26524:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6231,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26508:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26517:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26508:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26508:46:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"36","id":6240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26558:1:39","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"26508:51:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26503:56:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6243,"nodeType":"ExpressionStatement","src":"26503:56:39"},{"expression":{"id":6256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6244,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26634:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6247,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"26656:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6248,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26661:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26656:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26655:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666666666666666","id":6251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26666:10:39","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"src":"26655:21:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6245,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26639:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26648:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26639:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26639:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":6254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26681:1:39","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"26639:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26634:48:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6257,"nodeType":"ExpressionStatement","src":"26634:48:39"},{"expression":{"id":6270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6258,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26757:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6261,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"26779:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6262,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26784:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26779:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6264,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26778:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307866666666","id":6265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26789:6:39","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xffff"},"src":"26778:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6259,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26762:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26771:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26762:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26762:34:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26800:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"26762:39:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26757:44:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6271,"nodeType":"ExpressionStatement","src":"26757:44:39"},{"expression":{"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6272,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26874:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6275,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"26896:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6276,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26901:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26896:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6278,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26895:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666","id":6279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26906:4:39","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"},"src":"26895:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6273,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26879:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26888:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26879:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26879:32:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":6282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26915:1:39","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"26879:37:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26874:42:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6285,"nodeType":"ExpressionStatement","src":"26874:42:39"},{"expression":{"id":6298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6286,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"26988:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6289,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"27010:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6290,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"27015:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27010:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27009:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307866","id":6293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27020:3:39","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"27009:14:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6287,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"26993:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27002:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"26993:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26993:31:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":6296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27028:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26993:36:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26988:41:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6299,"nodeType":"ExpressionStatement","src":"26988:41:39"},{"AST":{"nativeSrc":"28490:119:39","nodeType":"YulBlock","src":"28490:119:39","statements":[{"nativeSrc":"28504:95:39","nodeType":"YulAssignment","src":"28504:95:39","value":{"arguments":[{"name":"r","nativeSrc":"28512:1:39","nodeType":"YulIdentifier","src":"28512:1:39"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"28524:1:39","nodeType":"YulIdentifier","src":"28524:1:39"},{"name":"x","nativeSrc":"28527:1:39","nodeType":"YulIdentifier","src":"28527:1:39"}],"functionName":{"name":"shr","nativeSrc":"28520:3:39","nodeType":"YulIdentifier","src":"28520:3:39"},"nativeSrc":"28520:9:39","nodeType":"YulFunctionCall","src":"28520:9:39"},{"kind":"number","nativeSrc":"28531:66:39","nodeType":"YulLiteral","src":"28531:66:39","type":"","value":"0x0000010102020202030303030303030300000000000000000000000000000000"}],"functionName":{"name":"byte","nativeSrc":"28515:4:39","nodeType":"YulIdentifier","src":"28515:4:39"},"nativeSrc":"28515:83:39","nodeType":"YulFunctionCall","src":"28515:83:39"}],"functionName":{"name":"or","nativeSrc":"28509:2:39","nodeType":"YulIdentifier","src":"28509:2:39"},"nativeSrc":"28509:90:39","nodeType":"YulFunctionCall","src":"28509:90:39"},"variableNames":[{"name":"r","nativeSrc":"28504:1:39","nodeType":"YulIdentifier","src":"28504:1:39"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":6217,"isOffset":false,"isSlot":false,"src":"28504:1:39","valueSize":1},{"declaration":6217,"isOffset":false,"isSlot":false,"src":"28512:1:39","valueSize":1},{"declaration":6217,"isOffset":false,"isSlot":false,"src":"28524:1:39","valueSize":1},{"declaration":6214,"isOffset":false,"isSlot":false,"src":"28527:1:39","valueSize":1}],"flags":["memory-safe"],"id":6300,"nodeType":"InlineAssembly","src":"28465:144:39"}]},"documentation":{"id":6212,"nodeType":"StructuredDocumentation","src":"26098:119:39","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":6302,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"26231:4:39","nodeType":"FunctionDefinition","parameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6214,"mutability":"mutable","name":"x","nameLocation":"26244:1:39","nodeType":"VariableDeclaration","scope":6302,"src":"26236:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6213,"name":"uint256","nodeType":"ElementaryTypeName","src":"26236:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26235:11:39"},"returnParameters":{"id":6218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6217,"mutability":"mutable","name":"r","nameLocation":"26278:1:39","nodeType":"VariableDeclaration","scope":6302,"src":"26270:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6216,"name":"uint256","nodeType":"ElementaryTypeName","src":"26270:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26269:11:39"},"scope":6633,"src":"26222:2393:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6335,"nodeType":"Block","src":"28848:175:39","statements":[{"id":6334,"nodeType":"UncheckedBlock","src":"28858:159:39","statements":[{"assignments":[6314],"declarations":[{"constant":false,"id":6314,"mutability":"mutable","name":"result","nameLocation":"28890:6:39","nodeType":"VariableDeclaration","scope":6334,"src":"28882:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6313,"name":"uint256","nodeType":"ElementaryTypeName","src":"28882:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6318,"initialValue":{"arguments":[{"id":6316,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6305,"src":"28904:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6315,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[6302,6336],"referencedDeclaration":6302,"src":"28899:4:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28899:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28882:28:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6319,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"28931:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6323,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6308,"src":"28973:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":6322,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"28956:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":6324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28956:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28986:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":6326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"28991:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28986:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6305,"src":"29000:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28986:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28956:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6320,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"28940:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28949:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"28940:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28940:66:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28931:75:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6312,"id":6333,"nodeType":"Return","src":"28924:82:39"}]}]},"documentation":{"id":6303,"nodeType":"StructuredDocumentation","src":"28621:142:39","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6336,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"28777:4:39","nodeType":"FunctionDefinition","parameters":{"id":6309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6305,"mutability":"mutable","name":"value","nameLocation":"28790:5:39","nodeType":"VariableDeclaration","scope":6336,"src":"28782:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6304,"name":"uint256","nodeType":"ElementaryTypeName","src":"28782:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6308,"mutability":"mutable","name":"rounding","nameLocation":"28806:8:39","nodeType":"VariableDeclaration","scope":6336,"src":"28797:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":6307,"nodeType":"UserDefinedTypeName","pathNode":{"id":6306,"name":"Rounding","nameLocations":["28797:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"28797:8:39"},"referencedDeclaration":5024,"src":"28797:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"28781:34:39"},"returnParameters":{"id":6312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6336,"src":"28839:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6310,"name":"uint256","nodeType":"ElementaryTypeName","src":"28839:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28838:9:39"},"scope":6633,"src":"28768:255:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6464,"nodeType":"Block","src":"29216:854:39","statements":[{"assignments":[6345],"declarations":[{"constant":false,"id":6345,"mutability":"mutable","name":"result","nameLocation":"29234:6:39","nodeType":"VariableDeclaration","scope":6464,"src":"29226:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6344,"name":"uint256","nodeType":"ElementaryTypeName","src":"29226:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6347,"initialValue":{"hexValue":"30","id":6346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29243:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29226:18:39"},{"id":6461,"nodeType":"UncheckedBlock","src":"29254:787:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29282:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":6351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29291:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":6350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29297:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"29291:8:39","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"29282:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6364,"nodeType":"IfStatement","src":"29278:103:39","trueBody":{"id":6363,"nodeType":"Block","src":"29301:80:39","statements":[{"expression":{"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29319:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":6356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29328:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":6355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29334:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"29328:8:39","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"29319:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6358,"nodeType":"ExpressionStatement","src":"29319:17:39"},{"expression":{"id":6361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6359,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29354:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":6360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29364:2:39","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"29354:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6362,"nodeType":"ExpressionStatement","src":"29354:12:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29398:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":6368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29407:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":6367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29413:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"29407:8:39","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"29398:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6381,"nodeType":"IfStatement","src":"29394:103:39","trueBody":{"id":6380,"nodeType":"Block","src":"29417:80:39","statements":[{"expression":{"id":6374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29435:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":6373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29444:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":6372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29450:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"29444:8:39","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"29435:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6375,"nodeType":"ExpressionStatement","src":"29435:17:39"},{"expression":{"id":6378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6376,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29470:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":6377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29480:2:39","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"29470:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6379,"nodeType":"ExpressionStatement","src":"29470:12:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6382,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29514:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":6385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29523:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":6384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29529:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"29523:8:39","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"29514:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6398,"nodeType":"IfStatement","src":"29510:103:39","trueBody":{"id":6397,"nodeType":"Block","src":"29533:80:39","statements":[{"expression":{"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6387,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29551:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":6390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29560:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":6389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29566:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"29560:8:39","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"29551:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6392,"nodeType":"ExpressionStatement","src":"29551:17:39"},{"expression":{"id":6395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6393,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29586:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":6394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29596:2:39","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"29586:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6396,"nodeType":"ExpressionStatement","src":"29586:12:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29630:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":6402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29639:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":6401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29645:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"29639:7:39","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"29630:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6415,"nodeType":"IfStatement","src":"29626:100:39","trueBody":{"id":6414,"nodeType":"Block","src":"29648:78:39","statements":[{"expression":{"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29666:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":6407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29675:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":6406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29681:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"29675:7:39","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"29666:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6409,"nodeType":"ExpressionStatement","src":"29666:16:39"},{"expression":{"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6410,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29700:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":6411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29710:1:39","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"29700:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6413,"nodeType":"ExpressionStatement","src":"29700:11:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6416,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29743:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":6419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29752:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":6418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29758:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"29752:7:39","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"29743:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6432,"nodeType":"IfStatement","src":"29739:100:39","trueBody":{"id":6431,"nodeType":"Block","src":"29761:78:39","statements":[{"expression":{"id":6425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6421,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29779:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":6424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29788:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":6423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29794:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"29788:7:39","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"29779:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6426,"nodeType":"ExpressionStatement","src":"29779:16:39"},{"expression":{"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6427,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29813:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":6428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29823:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"29813:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6430,"nodeType":"ExpressionStatement","src":"29813:11:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29856:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":6436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29865:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":6435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29871:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"29865:7:39","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"29856:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6449,"nodeType":"IfStatement","src":"29852:100:39","trueBody":{"id":6448,"nodeType":"Block","src":"29874:78:39","statements":[{"expression":{"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6438,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29892:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":6441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29901:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":6440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29907:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"29901:7:39","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"29892:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6443,"nodeType":"ExpressionStatement","src":"29892:16:39"},{"expression":{"id":6446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6444,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"29926:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":6445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29936:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"29926:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6447,"nodeType":"ExpressionStatement","src":"29926:11:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6450,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6339,"src":"29969:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":6453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29978:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":6452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29984:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29978:7:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"29969:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6460,"nodeType":"IfStatement","src":"29965:66:39","trueBody":{"id":6459,"nodeType":"Block","src":"29987:44:39","statements":[{"expression":{"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6455,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"30005:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":6456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30015:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30005:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6458,"nodeType":"ExpressionStatement","src":"30005:11:39"}]}}]},{"expression":{"id":6462,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6345,"src":"30057:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6343,"id":6463,"nodeType":"Return","src":"30050:13:39"}]},"documentation":{"id":6337,"nodeType":"StructuredDocumentation","src":"29029:120:39","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":6465,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"29163:5:39","nodeType":"FunctionDefinition","parameters":{"id":6340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6339,"mutability":"mutable","name":"value","nameLocation":"29177:5:39","nodeType":"VariableDeclaration","scope":6465,"src":"29169:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6338,"name":"uint256","nodeType":"ElementaryTypeName","src":"29169:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29168:15:39"},"returnParameters":{"id":6343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6465,"src":"29207:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6341,"name":"uint256","nodeType":"ElementaryTypeName","src":"29207:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29206:9:39"},"scope":6633,"src":"29154:916:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6498,"nodeType":"Block","src":"30305:177:39","statements":[{"id":6497,"nodeType":"UncheckedBlock","src":"30315:161:39","statements":[{"assignments":[6477],"declarations":[{"constant":false,"id":6477,"mutability":"mutable","name":"result","nameLocation":"30347:6:39","nodeType":"VariableDeclaration","scope":6497,"src":"30339:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6476,"name":"uint256","nodeType":"ElementaryTypeName","src":"30339:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6481,"initialValue":{"arguments":[{"id":6479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"30362:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6478,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[6465,6499],"referencedDeclaration":6465,"src":"30356:5:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30356:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30339:29:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6482,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"30389:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6486,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6471,"src":"30431:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":6485,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"30414:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30414:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":6488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30444:2:39","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":6489,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"30450:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30444:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"30459:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30444:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30414:50:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6483,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"30398:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30407:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"30398:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30398:67:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30389:76:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6475,"id":6496,"nodeType":"Return","src":"30382:83:39"}]}]},"documentation":{"id":6466,"nodeType":"StructuredDocumentation","src":"30076:143:39","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6499,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"30233:5:39","nodeType":"FunctionDefinition","parameters":{"id":6472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6468,"mutability":"mutable","name":"value","nameLocation":"30247:5:39","nodeType":"VariableDeclaration","scope":6499,"src":"30239:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6467,"name":"uint256","nodeType":"ElementaryTypeName","src":"30239:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6471,"mutability":"mutable","name":"rounding","nameLocation":"30263:8:39","nodeType":"VariableDeclaration","scope":6499,"src":"30254:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":6470,"nodeType":"UserDefinedTypeName","pathNode":{"id":6469,"name":"Rounding","nameLocations":["30254:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"30254:8:39"},"referencedDeclaration":5024,"src":"30254:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"30238:34:39"},"returnParameters":{"id":6475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6499,"src":"30296:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6473,"name":"uint256","nodeType":"ElementaryTypeName","src":"30296:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30295:9:39"},"scope":6633,"src":"30224:258:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6575,"nodeType":"Block","src":"30800:675:39","statements":[{"expression":{"id":6516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6507,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"30882:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6510,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"30902:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666666666666666666666666666666666666666666666666666666666666666","id":6511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30906:34:39","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"value":"0xffffffffffffffffffffffffffffffff"},"src":"30902:38:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6508,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"30886:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30895:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"30886:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30886:55:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"37","id":6514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30945:1:39","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"30886:60:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30882:64:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6517,"nodeType":"ExpressionStatement","src":"30882:64:39"},{"expression":{"id":6530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6518,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31022:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6521,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"31044:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6522,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31049:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31044:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6524,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31043:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307866666666666666666666666666666666","id":6525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31054:18:39","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xffffffffffffffff"},"src":"31043:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6519,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"31027:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31036:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"31027:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31027:46:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"36","id":6528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31077:1:39","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"31027:51:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31022:56:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6531,"nodeType":"ExpressionStatement","src":"31022:56:39"},{"expression":{"id":6544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6532,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31153:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6535,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"31175:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6536,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31180:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31175:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31174:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666666666666666","id":6539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31185:10:39","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"src":"31174:21:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6533,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"31158:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31167:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"31158:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31158:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":6542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31200:1:39","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"31158:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31153:48:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6545,"nodeType":"ExpressionStatement","src":"31153:48:39"},{"expression":{"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6546,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31276:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6549,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"31298:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6550,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31303:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31298:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6552,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31297:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307866666666","id":6553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31308:6:39","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xffff"},"src":"31297:17:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6547,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"31281:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31290:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"31281:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31281:34:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31319:1:39","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"31281:39:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31276:44:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6559,"nodeType":"ExpressionStatement","src":"31276:44:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6560,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31426:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"33","id":6561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31431:1:39","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"31426:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6563,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31425:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6566,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6502,"src":"31453:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":6567,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"31458:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31453:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31452:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30786666","id":6570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31463:4:39","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"},"src":"31452:15:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6564,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"31436:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31445:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"31436:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31436:32:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31425:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6506,"id":6574,"nodeType":"Return","src":"31418:50:39"}]},"documentation":{"id":6500,"nodeType":"StructuredDocumentation","src":"30488:246:39","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":6576,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"30748:6:39","nodeType":"FunctionDefinition","parameters":{"id":6503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6502,"mutability":"mutable","name":"x","nameLocation":"30763:1:39","nodeType":"VariableDeclaration","scope":6576,"src":"30755:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6501,"name":"uint256","nodeType":"ElementaryTypeName","src":"30755:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30754:11:39"},"returnParameters":{"id":6506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6505,"mutability":"mutable","name":"r","nameLocation":"30797:1:39","nodeType":"VariableDeclaration","scope":6576,"src":"30789:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6504,"name":"uint256","nodeType":"ElementaryTypeName","src":"30789:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30788:11:39"},"scope":6633,"src":"30739:736:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6612,"nodeType":"Block","src":"31712:184:39","statements":[{"id":6611,"nodeType":"UncheckedBlock","src":"31722:168:39","statements":[{"assignments":[6588],"declarations":[{"constant":false,"id":6588,"mutability":"mutable","name":"result","nameLocation":"31754:6:39","nodeType":"VariableDeclaration","scope":6611,"src":"31746:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6587,"name":"uint256","nodeType":"ElementaryTypeName","src":"31746:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6592,"initialValue":{"arguments":[{"id":6590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"31770:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6589,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[6576,6613],"referencedDeclaration":6576,"src":"31763:6:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31763:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31746:30:39"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6593,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6588,"src":"31797:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6597,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6582,"src":"31839:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":6596,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6632,"src":"31822:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$5024_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":6598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31822:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31852:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6600,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6588,"src":"31858:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":6601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31868:1:39","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"31858:11:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31857:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31852:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6579,"src":"31873:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31852:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31822:56:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6594,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"31806:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$8398_$","typeString":"type(library SafeCast)"}},"id":6595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31815:6:39","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":8397,"src":"31806:15:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31806:73:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31797:82:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6586,"id":6610,"nodeType":"Return","src":"31790:89:39"}]}]},"documentation":{"id":6577,"nodeType":"StructuredDocumentation","src":"31481:144:39","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":6613,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"31639:6:39","nodeType":"FunctionDefinition","parameters":{"id":6583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6579,"mutability":"mutable","name":"value","nameLocation":"31654:5:39","nodeType":"VariableDeclaration","scope":6613,"src":"31646:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6578,"name":"uint256","nodeType":"ElementaryTypeName","src":"31646:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6582,"mutability":"mutable","name":"rounding","nameLocation":"31670:8:39","nodeType":"VariableDeclaration","scope":6613,"src":"31661:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":6581,"nodeType":"UserDefinedTypeName","pathNode":{"id":6580,"name":"Rounding","nameLocations":["31661:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"31661:8:39"},"referencedDeclaration":5024,"src":"31661:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"31645:34:39"},"returnParameters":{"id":6586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6613,"src":"31703:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6584,"name":"uint256","nodeType":"ElementaryTypeName","src":"31703:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31702:9:39"},"scope":6633,"src":"31630:266:39","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6631,"nodeType":"Block","src":"32094:48:39","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6624,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"32117:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}],"id":6623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32111:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6622,"name":"uint8","nodeType":"ElementaryTypeName","src":"32111:5:39","typeDescriptions":{}}},"id":6625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32111:15:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":6626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32129:1:39","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"32111:19:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32134:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32111:24:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6621,"id":6630,"nodeType":"Return","src":"32104:31:39"}]},"documentation":{"id":6614,"nodeType":"StructuredDocumentation","src":"31902:113:39","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":6632,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"32029:16:39","nodeType":"FunctionDefinition","parameters":{"id":6618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6617,"mutability":"mutable","name":"rounding","nameLocation":"32055:8:39","nodeType":"VariableDeclaration","scope":6632,"src":"32046:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"},"typeName":{"id":6616,"nodeType":"UserDefinedTypeName","pathNode":{"id":6615,"name":"Rounding","nameLocations":["32046:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":5024,"src":"32046:8:39"},"referencedDeclaration":5024,"src":"32046:8:39","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$5024","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"32045:19:39"},"returnParameters":{"id":6621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6632,"src":"32088:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6619,"name":"bool","nodeType":"ElementaryTypeName","src":"32088:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32087:6:39"},"scope":6633,"src":"32020:122:39","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6634,"src":"281:31863:39","usedErrors":[],"usedEvents":[]}],"src":"103:32042:39"},"id":39},"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[8398]},"id":8399,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6635,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:40"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":6636,"nodeType":"StructuredDocumentation","src":"218:550:40","text":" @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":8398,"linearizedBaseContracts":[8398],"name":"SafeCast","nameLocation":"777:8:40","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6637,"nodeType":"StructuredDocumentation","src":"792:68:40","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":6643,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:40","nodeType":"ErrorDefinition","parameters":{"id":6642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6639,"mutability":"mutable","name":"bits","nameLocation":"908:4:40","nodeType":"VariableDeclaration","scope":6643,"src":"902:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6638,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6641,"mutability":"mutable","name":"value","nameLocation":"922:5:40","nodeType":"VariableDeclaration","scope":6643,"src":"914:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6640,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:40"},"src":"865:64:40"},{"documentation":{"id":6644,"nodeType":"StructuredDocumentation","src":"935:75:40","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":6648,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:40","nodeType":"ErrorDefinition","parameters":{"id":6647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6646,"mutability":"mutable","name":"value","nameLocation":"1056:5:40","nodeType":"VariableDeclaration","scope":6648,"src":"1049:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6645,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:40"},"src":"1015:48:40"},{"documentation":{"id":6649,"nodeType":"StructuredDocumentation","src":"1069:67:40","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":6655,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:40","nodeType":"ErrorDefinition","parameters":{"id":6654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6651,"mutability":"mutable","name":"bits","nameLocation":"1183:4:40","nodeType":"VariableDeclaration","scope":6655,"src":"1177:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6650,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6653,"mutability":"mutable","name":"value","nameLocation":"1196:5:40","nodeType":"VariableDeclaration","scope":6655,"src":"1189:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6652,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:40"},"src":"1141:62:40"},{"documentation":{"id":6656,"nodeType":"StructuredDocumentation","src":"1209:75:40","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":6660,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:40","nodeType":"ErrorDefinition","parameters":{"id":6659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6658,"mutability":"mutable","name":"value","nameLocation":"1331:5:40","nodeType":"VariableDeclaration","scope":6660,"src":"1323:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:40"},"src":"1289:49:40"},{"body":{"id":6687,"nodeType":"Block","src":"1695:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"1709:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":6670,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":6669,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":6673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:40","memberName":"max","nodeType":"MemberAccess","src":"1717:17:40","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6681,"nodeType":"IfStatement","src":"1705:105:40","trueBody":{"id":6680,"nodeType":"Block","src":"1736:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":6676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:40","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":6677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"1793:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6675,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"1757:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6679,"nodeType":"RevertStatement","src":"1750:49:40"}]}},{"expression":{"arguments":[{"id":6684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6663,"src":"1834:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":6682,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:40","typeDescriptions":{}}},"id":6685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":6667,"id":6686,"nodeType":"Return","src":"1819:21:40"}]},"documentation":{"id":6661,"nodeType":"StructuredDocumentation","src":"1344:280:40","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":6688,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:40","nodeType":"FunctionDefinition","parameters":{"id":6664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6663,"mutability":"mutable","name":"value","nameLocation":"1656:5:40","nodeType":"VariableDeclaration","scope":6688,"src":"1648:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6662,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:40"},"returnParameters":{"id":6667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6688,"src":"1686:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":6665,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:40","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:40"},"scope":8398,"src":"1629:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6715,"nodeType":"Block","src":"2204:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6696,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"2218:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":6698,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":6697,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":6701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:40","memberName":"max","nodeType":"MemberAccess","src":"2226:17:40","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6709,"nodeType":"IfStatement","src":"2214:105:40","trueBody":{"id":6708,"nodeType":"Block","src":"2245:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":6704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:40","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":6705,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"2302:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6703,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"2266:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6707,"nodeType":"RevertStatement","src":"2259:49:40"}]}},{"expression":{"arguments":[{"id":6712,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"2343:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":6710,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:40","typeDescriptions":{}}},"id":6713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":6695,"id":6714,"nodeType":"Return","src":"2328:21:40"}]},"documentation":{"id":6689,"nodeType":"StructuredDocumentation","src":"1853:280:40","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":6716,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:40","nodeType":"FunctionDefinition","parameters":{"id":6692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6691,"mutability":"mutable","name":"value","nameLocation":"2165:5:40","nodeType":"VariableDeclaration","scope":6716,"src":"2157:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6690,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:40"},"returnParameters":{"id":6695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6716,"src":"2195:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":6693,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:40","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:40"},"scope":8398,"src":"2138:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6743,"nodeType":"Block","src":"2713:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6719,"src":"2727:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":6726,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":6725,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":6729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:40","memberName":"max","nodeType":"MemberAccess","src":"2735:17:40","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6737,"nodeType":"IfStatement","src":"2723:105:40","trueBody":{"id":6736,"nodeType":"Block","src":"2754:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:40","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":6733,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6719,"src":"2811:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6731,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"2775:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6735,"nodeType":"RevertStatement","src":"2768:49:40"}]}},{"expression":{"arguments":[{"id":6740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6719,"src":"2852:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":6738,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:40","typeDescriptions":{}}},"id":6741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":6723,"id":6742,"nodeType":"Return","src":"2837:21:40"}]},"documentation":{"id":6717,"nodeType":"StructuredDocumentation","src":"2362:280:40","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":6744,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:40","nodeType":"FunctionDefinition","parameters":{"id":6720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6719,"mutability":"mutable","name":"value","nameLocation":"2674:5:40","nodeType":"VariableDeclaration","scope":6744,"src":"2666:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:40"},"returnParameters":{"id":6723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6744,"src":"2704:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":6721,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:40","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:40"},"scope":8398,"src":"2647:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6771,"nodeType":"Block","src":"3222:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"3236:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":6754,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":6753,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":6757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:40","memberName":"max","nodeType":"MemberAccess","src":"3244:17:40","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6765,"nodeType":"IfStatement","src":"3232:105:40","trueBody":{"id":6764,"nodeType":"Block","src":"3263:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":6760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:40","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":6761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"3320:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6759,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"3284:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6763,"nodeType":"RevertStatement","src":"3277:49:40"}]}},{"expression":{"arguments":[{"id":6768,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"3361:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":6766,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:40","typeDescriptions":{}}},"id":6769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":6751,"id":6770,"nodeType":"Return","src":"3346:21:40"}]},"documentation":{"id":6745,"nodeType":"StructuredDocumentation","src":"2871:280:40","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":6772,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:40","nodeType":"FunctionDefinition","parameters":{"id":6748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6747,"mutability":"mutable","name":"value","nameLocation":"3183:5:40","nodeType":"VariableDeclaration","scope":6772,"src":"3175:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6746,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:40"},"returnParameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6772,"src":"3213:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":6749,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:40","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:40"},"scope":8398,"src":"3156:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6799,"nodeType":"Block","src":"3731:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"3745:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":6782,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":6781,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:40","memberName":"max","nodeType":"MemberAccess","src":"3753:17:40","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6793,"nodeType":"IfStatement","src":"3741:105:40","trueBody":{"id":6792,"nodeType":"Block","src":"3772:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":6788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:40","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":6789,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"3829:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6787,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"3793:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6791,"nodeType":"RevertStatement","src":"3786:49:40"}]}},{"expression":{"arguments":[{"id":6796,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"3870:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":6794,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:40","typeDescriptions":{}}},"id":6797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":6779,"id":6798,"nodeType":"Return","src":"3855:21:40"}]},"documentation":{"id":6773,"nodeType":"StructuredDocumentation","src":"3380:280:40","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":6800,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:40","nodeType":"FunctionDefinition","parameters":{"id":6776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6775,"mutability":"mutable","name":"value","nameLocation":"3692:5:40","nodeType":"VariableDeclaration","scope":6800,"src":"3684:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:40"},"returnParameters":{"id":6779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6800,"src":"3722:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":6777,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:40","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:40"},"scope":8398,"src":"3665:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6827,"nodeType":"Block","src":"4240:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"4254:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":6810,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":6809,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":6813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:40","memberName":"max","nodeType":"MemberAccess","src":"4262:17:40","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6821,"nodeType":"IfStatement","src":"4250:105:40","trueBody":{"id":6820,"nodeType":"Block","src":"4281:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:40","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":6817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"4338:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6815,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"4302:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6819,"nodeType":"RevertStatement","src":"4295:49:40"}]}},{"expression":{"arguments":[{"id":6824,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6803,"src":"4379:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":6822,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:40","typeDescriptions":{}}},"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":6807,"id":6826,"nodeType":"Return","src":"4364:21:40"}]},"documentation":{"id":6801,"nodeType":"StructuredDocumentation","src":"3889:280:40","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":6828,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:40","nodeType":"FunctionDefinition","parameters":{"id":6804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6803,"mutability":"mutable","name":"value","nameLocation":"4201:5:40","nodeType":"VariableDeclaration","scope":6828,"src":"4193:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6802,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:40"},"returnParameters":{"id":6807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6828,"src":"4231:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":6805,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:40","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:40"},"scope":8398,"src":"4174:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6855,"nodeType":"Block","src":"4749:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6836,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"4763:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":6838,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":6837,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":6841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:40","memberName":"max","nodeType":"MemberAccess","src":"4771:17:40","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6849,"nodeType":"IfStatement","src":"4759:105:40","trueBody":{"id":6848,"nodeType":"Block","src":"4790:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":6844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:40","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":6845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"4847:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6843,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"4811:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6847,"nodeType":"RevertStatement","src":"4804:49:40"}]}},{"expression":{"arguments":[{"id":6852,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6831,"src":"4888:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":6850,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:40","typeDescriptions":{}}},"id":6853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":6835,"id":6854,"nodeType":"Return","src":"4873:21:40"}]},"documentation":{"id":6829,"nodeType":"StructuredDocumentation","src":"4398:280:40","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":6856,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:40","nodeType":"FunctionDefinition","parameters":{"id":6832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6831,"mutability":"mutable","name":"value","nameLocation":"4710:5:40","nodeType":"VariableDeclaration","scope":6856,"src":"4702:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6830,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:40"},"returnParameters":{"id":6835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6856,"src":"4740:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":6833,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:40","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:40"},"scope":8398,"src":"4683:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6883,"nodeType":"Block","src":"5258:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6864,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6859,"src":"5272:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":6866,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":6865,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":6869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:40","memberName":"max","nodeType":"MemberAccess","src":"5280:17:40","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6877,"nodeType":"IfStatement","src":"5268:105:40","trueBody":{"id":6876,"nodeType":"Block","src":"5299:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":6872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:40","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":6873,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6859,"src":"5356:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6871,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"5320:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6875,"nodeType":"RevertStatement","src":"5313:49:40"}]}},{"expression":{"arguments":[{"id":6880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6859,"src":"5397:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":6878,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:40","typeDescriptions":{}}},"id":6881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":6863,"id":6882,"nodeType":"Return","src":"5382:21:40"}]},"documentation":{"id":6857,"nodeType":"StructuredDocumentation","src":"4907:280:40","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":6884,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:40","nodeType":"FunctionDefinition","parameters":{"id":6860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6859,"mutability":"mutable","name":"value","nameLocation":"5219:5:40","nodeType":"VariableDeclaration","scope":6884,"src":"5211:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6858,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:40"},"returnParameters":{"id":6863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6884,"src":"5249:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":6861,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:40","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:40"},"scope":8398,"src":"5192:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6911,"nodeType":"Block","src":"5767:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6892,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6887,"src":"5781:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":6894,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":6893,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":6897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:40","memberName":"max","nodeType":"MemberAccess","src":"5789:17:40","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6905,"nodeType":"IfStatement","src":"5777:105:40","trueBody":{"id":6904,"nodeType":"Block","src":"5808:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":6900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:40","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":6901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6887,"src":"5865:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6899,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"5829:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6903,"nodeType":"RevertStatement","src":"5822:49:40"}]}},{"expression":{"arguments":[{"id":6908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6887,"src":"5906:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":6906,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:40","typeDescriptions":{}}},"id":6909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":6891,"id":6910,"nodeType":"Return","src":"5891:21:40"}]},"documentation":{"id":6885,"nodeType":"StructuredDocumentation","src":"5416:280:40","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":6912,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:40","nodeType":"FunctionDefinition","parameters":{"id":6888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6887,"mutability":"mutable","name":"value","nameLocation":"5728:5:40","nodeType":"VariableDeclaration","scope":6912,"src":"5720:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6886,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:40"},"returnParameters":{"id":6891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6912,"src":"5758:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":6889,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:40","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:40"},"scope":8398,"src":"5701:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6939,"nodeType":"Block","src":"6276:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6920,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6915,"src":"6290:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":6922,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":6921,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":6925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:40","memberName":"max","nodeType":"MemberAccess","src":"6298:17:40","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6933,"nodeType":"IfStatement","src":"6286:105:40","trueBody":{"id":6932,"nodeType":"Block","src":"6317:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:40","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":6929,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6915,"src":"6374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6927,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"6338:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6931,"nodeType":"RevertStatement","src":"6331:49:40"}]}},{"expression":{"arguments":[{"id":6936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6915,"src":"6415:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":6934,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:40","typeDescriptions":{}}},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":6919,"id":6938,"nodeType":"Return","src":"6400:21:40"}]},"documentation":{"id":6913,"nodeType":"StructuredDocumentation","src":"5925:280:40","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":6940,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:40","nodeType":"FunctionDefinition","parameters":{"id":6916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6915,"mutability":"mutable","name":"value","nameLocation":"6237:5:40","nodeType":"VariableDeclaration","scope":6940,"src":"6229:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6914,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:40"},"returnParameters":{"id":6919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6940,"src":"6267:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":6917,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:40","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:40"},"scope":8398,"src":"6210:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6967,"nodeType":"Block","src":"6785:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"6799:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":6950,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":6949,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":6953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:40","memberName":"max","nodeType":"MemberAccess","src":"6807:17:40","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6961,"nodeType":"IfStatement","src":"6795:105:40","trueBody":{"id":6960,"nodeType":"Block","src":"6826:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":6956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:40","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":6957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"6883:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6955,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"6847:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6959,"nodeType":"RevertStatement","src":"6840:49:40"}]}},{"expression":{"arguments":[{"id":6964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6943,"src":"6924:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":6962,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:40","typeDescriptions":{}}},"id":6965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":6947,"id":6966,"nodeType":"Return","src":"6909:21:40"}]},"documentation":{"id":6941,"nodeType":"StructuredDocumentation","src":"6434:280:40","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":6968,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:40","nodeType":"FunctionDefinition","parameters":{"id":6944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6943,"mutability":"mutable","name":"value","nameLocation":"6746:5:40","nodeType":"VariableDeclaration","scope":6968,"src":"6738:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6942,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:40"},"returnParameters":{"id":6947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6946,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6968,"src":"6776:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":6945,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:40","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:40"},"scope":8398,"src":"6719:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6995,"nodeType":"Block","src":"7294:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"7308:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6978,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":6977,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":6981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:40","memberName":"max","nodeType":"MemberAccess","src":"7316:17:40","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6989,"nodeType":"IfStatement","src":"7304:105:40","trueBody":{"id":6988,"nodeType":"Block","src":"7335:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":6984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:40","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":6985,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"7392:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6983,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"7356:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6987,"nodeType":"RevertStatement","src":"7349:49:40"}]}},{"expression":{"arguments":[{"id":6992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"7433:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6990,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:40","typeDescriptions":{}}},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":6975,"id":6994,"nodeType":"Return","src":"7418:21:40"}]},"documentation":{"id":6969,"nodeType":"StructuredDocumentation","src":"6943:280:40","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":6996,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:40","nodeType":"FunctionDefinition","parameters":{"id":6972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6971,"mutability":"mutable","name":"value","nameLocation":"7255:5:40","nodeType":"VariableDeclaration","scope":6996,"src":"7247:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6970,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:40"},"returnParameters":{"id":6975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6996,"src":"7285:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":6973,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:40","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:40"},"scope":8398,"src":"7228:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7023,"nodeType":"Block","src":"7803:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"7817:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":7006,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":7005,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":7009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:40","memberName":"max","nodeType":"MemberAccess","src":"7825:17:40","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7017,"nodeType":"IfStatement","src":"7813:105:40","trueBody":{"id":7016,"nodeType":"Block","src":"7844:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":7012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:40","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":7013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"7901:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7011,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"7865:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7015,"nodeType":"RevertStatement","src":"7858:49:40"}]}},{"expression":{"arguments":[{"id":7020,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"7942:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":7018,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:40","typeDescriptions":{}}},"id":7021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":7003,"id":7022,"nodeType":"Return","src":"7927:21:40"}]},"documentation":{"id":6997,"nodeType":"StructuredDocumentation","src":"7452:280:40","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":7024,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:40","nodeType":"FunctionDefinition","parameters":{"id":7000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6999,"mutability":"mutable","name":"value","nameLocation":"7764:5:40","nodeType":"VariableDeclaration","scope":7024,"src":"7756:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6998,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:40"},"returnParameters":{"id":7003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7024,"src":"7794:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":7001,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:40","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:40"},"scope":8398,"src":"7737:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7051,"nodeType":"Block","src":"8312:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"8326:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":7034,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":7033,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:40","memberName":"max","nodeType":"MemberAccess","src":"8334:17:40","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7045,"nodeType":"IfStatement","src":"8322:105:40","trueBody":{"id":7044,"nodeType":"Block","src":"8353:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":7040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:40","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":7041,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"8410:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7039,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"8374:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7043,"nodeType":"RevertStatement","src":"8367:49:40"}]}},{"expression":{"arguments":[{"id":7048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7027,"src":"8451:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":7046,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:40","typeDescriptions":{}}},"id":7049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":7031,"id":7050,"nodeType":"Return","src":"8436:21:40"}]},"documentation":{"id":7025,"nodeType":"StructuredDocumentation","src":"7961:280:40","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":7052,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:40","nodeType":"FunctionDefinition","parameters":{"id":7028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7027,"mutability":"mutable","name":"value","nameLocation":"8273:5:40","nodeType":"VariableDeclaration","scope":7052,"src":"8265:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7026,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:40"},"returnParameters":{"id":7031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7052,"src":"8303:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":7029,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:40","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:40"},"scope":8398,"src":"8246:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7079,"nodeType":"Block","src":"8821:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7055,"src":"8835:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":7062,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":7061,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":7065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:40","memberName":"max","nodeType":"MemberAccess","src":"8843:17:40","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7073,"nodeType":"IfStatement","src":"8831:105:40","trueBody":{"id":7072,"nodeType":"Block","src":"8862:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":7068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:40","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":7069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7055,"src":"8919:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7067,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"8883:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7071,"nodeType":"RevertStatement","src":"8876:49:40"}]}},{"expression":{"arguments":[{"id":7076,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7055,"src":"8960:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":7074,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:40","typeDescriptions":{}}},"id":7077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":7059,"id":7078,"nodeType":"Return","src":"8945:21:40"}]},"documentation":{"id":7053,"nodeType":"StructuredDocumentation","src":"8470:280:40","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":7080,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:40","nodeType":"FunctionDefinition","parameters":{"id":7056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7055,"mutability":"mutable","name":"value","nameLocation":"8782:5:40","nodeType":"VariableDeclaration","scope":7080,"src":"8774:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7054,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:40"},"returnParameters":{"id":7059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7080,"src":"8812:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":7057,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:40","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:40"},"scope":8398,"src":"8755:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7107,"nodeType":"Block","src":"9330:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7083,"src":"9344:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":7090,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":7089,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":7093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:40","memberName":"max","nodeType":"MemberAccess","src":"9352:17:40","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7101,"nodeType":"IfStatement","src":"9340:105:40","trueBody":{"id":7100,"nodeType":"Block","src":"9371:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:40","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":7097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7083,"src":"9428:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7095,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"9392:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7099,"nodeType":"RevertStatement","src":"9385:49:40"}]}},{"expression":{"arguments":[{"id":7104,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7083,"src":"9469:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":7102,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:40","typeDescriptions":{}}},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":7087,"id":7106,"nodeType":"Return","src":"9454:21:40"}]},"documentation":{"id":7081,"nodeType":"StructuredDocumentation","src":"8979:280:40","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":7108,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:40","nodeType":"FunctionDefinition","parameters":{"id":7084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7083,"mutability":"mutable","name":"value","nameLocation":"9291:5:40","nodeType":"VariableDeclaration","scope":7108,"src":"9283:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7082,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:40"},"returnParameters":{"id":7087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7108,"src":"9321:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":7085,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:40","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:40"},"scope":8398,"src":"9264:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7135,"nodeType":"Block","src":"9839:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7116,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"9853:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":7118,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":7117,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":7121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:40","memberName":"max","nodeType":"MemberAccess","src":"9861:17:40","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7129,"nodeType":"IfStatement","src":"9849:105:40","trueBody":{"id":7128,"nodeType":"Block","src":"9880:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":7124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:40","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":7125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"9937:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7123,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"9901:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7127,"nodeType":"RevertStatement","src":"9894:49:40"}]}},{"expression":{"arguments":[{"id":7132,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"9978:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":7130,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:40","typeDescriptions":{}}},"id":7133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":7115,"id":7134,"nodeType":"Return","src":"9963:21:40"}]},"documentation":{"id":7109,"nodeType":"StructuredDocumentation","src":"9488:280:40","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":7136,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:40","nodeType":"FunctionDefinition","parameters":{"id":7112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7111,"mutability":"mutable","name":"value","nameLocation":"9800:5:40","nodeType":"VariableDeclaration","scope":7136,"src":"9792:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:40"},"returnParameters":{"id":7115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7136,"src":"9830:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":7113,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:40","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:40"},"scope":8398,"src":"9773:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7163,"nodeType":"Block","src":"10348:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"10362:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":7146,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":7145,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":7149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:40","memberName":"max","nodeType":"MemberAccess","src":"10370:17:40","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7157,"nodeType":"IfStatement","src":"10358:105:40","trueBody":{"id":7156,"nodeType":"Block","src":"10389:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":7152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:40","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":7153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"10446:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7151,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"10410:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7155,"nodeType":"RevertStatement","src":"10403:49:40"}]}},{"expression":{"arguments":[{"id":7160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"10487:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":7158,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:40","typeDescriptions":{}}},"id":7161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":7143,"id":7162,"nodeType":"Return","src":"10472:21:40"}]},"documentation":{"id":7137,"nodeType":"StructuredDocumentation","src":"9997:280:40","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":7164,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:40","nodeType":"FunctionDefinition","parameters":{"id":7140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7139,"mutability":"mutable","name":"value","nameLocation":"10309:5:40","nodeType":"VariableDeclaration","scope":7164,"src":"10301:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7138,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:40"},"returnParameters":{"id":7143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7164,"src":"10339:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":7141,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:40","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:40"},"scope":8398,"src":"10282:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7191,"nodeType":"Block","src":"10857:152:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"10871:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":7174,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":7173,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":7177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:40","memberName":"max","nodeType":"MemberAccess","src":"10879:17:40","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7185,"nodeType":"IfStatement","src":"10867:105:40","trueBody":{"id":7184,"nodeType":"Block","src":"10898:74:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":7180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:40","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":7181,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"10955:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7179,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"10919:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7183,"nodeType":"RevertStatement","src":"10912:49:40"}]}},{"expression":{"arguments":[{"id":7188,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"10996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":7186,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:40","typeDescriptions":{}}},"id":7189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":7171,"id":7190,"nodeType":"Return","src":"10981:21:40"}]},"documentation":{"id":7165,"nodeType":"StructuredDocumentation","src":"10506:280:40","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":7192,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:40","nodeType":"FunctionDefinition","parameters":{"id":7168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7167,"mutability":"mutable","name":"value","nameLocation":"10818:5:40","nodeType":"VariableDeclaration","scope":7192,"src":"10810:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7166,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:40"},"returnParameters":{"id":7171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7192,"src":"10848:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":7169,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:40","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:40"},"scope":8398,"src":"10791:218:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7219,"nodeType":"Block","src":"11360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7200,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"11374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":7202,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":7201,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":7205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:40","memberName":"max","nodeType":"MemberAccess","src":"11382:16:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7213,"nodeType":"IfStatement","src":"11370:103:40","trueBody":{"id":7212,"nodeType":"Block","src":"11400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":7208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":7209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"11456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7207,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"11421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7211,"nodeType":"RevertStatement","src":"11414:48:40"}]}},{"expression":{"arguments":[{"id":7216,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"11496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":7214,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:40","typeDescriptions":{}}},"id":7217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":7199,"id":7218,"nodeType":"Return","src":"11482:20:40"}]},"documentation":{"id":7193,"nodeType":"StructuredDocumentation","src":"11015:276:40","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":7220,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7195,"mutability":"mutable","name":"value","nameLocation":"11322:5:40","nodeType":"VariableDeclaration","scope":7220,"src":"11314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7194,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:40"},"returnParameters":{"id":7199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7220,"src":"11352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":7197,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:40","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:40"},"scope":8398,"src":"11296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7247,"nodeType":"Block","src":"11860:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7228,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"11874:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":7230,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":7229,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":7233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:40","memberName":"max","nodeType":"MemberAccess","src":"11882:16:40","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7241,"nodeType":"IfStatement","src":"11870:103:40","trueBody":{"id":7240,"nodeType":"Block","src":"11900:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":7236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:40","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":7237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"11956:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7235,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"11921:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7239,"nodeType":"RevertStatement","src":"11914:48:40"}]}},{"expression":{"arguments":[{"id":7244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"11996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":7242,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:40","typeDescriptions":{}}},"id":7245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":7227,"id":7246,"nodeType":"Return","src":"11982:20:40"}]},"documentation":{"id":7221,"nodeType":"StructuredDocumentation","src":"11515:276:40","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":7248,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:40","nodeType":"FunctionDefinition","parameters":{"id":7224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7223,"mutability":"mutable","name":"value","nameLocation":"11822:5:40","nodeType":"VariableDeclaration","scope":7248,"src":"11814:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:40"},"returnParameters":{"id":7227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7248,"src":"11852:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":7225,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:40","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:40"},"scope":8398,"src":"11796:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7275,"nodeType":"Block","src":"12360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"12374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":7258,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":7257,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:40","memberName":"max","nodeType":"MemberAccess","src":"12382:16:40","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7269,"nodeType":"IfStatement","src":"12370:103:40","trueBody":{"id":7268,"nodeType":"Block","src":"12400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":7264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":7265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"12456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7263,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"12421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7267,"nodeType":"RevertStatement","src":"12414:48:40"}]}},{"expression":{"arguments":[{"id":7272,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"12496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":7270,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:40","typeDescriptions":{}}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":7255,"id":7274,"nodeType":"Return","src":"12482:20:40"}]},"documentation":{"id":7249,"nodeType":"StructuredDocumentation","src":"12015:276:40","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":7276,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7251,"mutability":"mutable","name":"value","nameLocation":"12322:5:40","nodeType":"VariableDeclaration","scope":7276,"src":"12314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7250,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:40"},"returnParameters":{"id":7255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7276,"src":"12352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":7253,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:40","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:40"},"scope":8398,"src":"12296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7303,"nodeType":"Block","src":"12860:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7284,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"12874:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":7286,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":7285,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":7289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:40","memberName":"max","nodeType":"MemberAccess","src":"12882:16:40","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7297,"nodeType":"IfStatement","src":"12870:103:40","trueBody":{"id":7296,"nodeType":"Block","src":"12900:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":7292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:40","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":7293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"12956:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7291,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"12921:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7295,"nodeType":"RevertStatement","src":"12914:48:40"}]}},{"expression":{"arguments":[{"id":7300,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"12996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":7298,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:40","typeDescriptions":{}}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":7283,"id":7302,"nodeType":"Return","src":"12982:20:40"}]},"documentation":{"id":7277,"nodeType":"StructuredDocumentation","src":"12515:276:40","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":7304,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:40","nodeType":"FunctionDefinition","parameters":{"id":7280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7279,"mutability":"mutable","name":"value","nameLocation":"12822:5:40","nodeType":"VariableDeclaration","scope":7304,"src":"12814:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7278,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:40"},"returnParameters":{"id":7283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7304,"src":"12852:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":7281,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:40","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:40"},"scope":8398,"src":"12796:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7331,"nodeType":"Block","src":"13360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7312,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"13374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":7314,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":7313,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":7317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:40","memberName":"max","nodeType":"MemberAccess","src":"13382:16:40","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7325,"nodeType":"IfStatement","src":"13370:103:40","trueBody":{"id":7324,"nodeType":"Block","src":"13400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":7320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":7321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"13456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7319,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"13421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7323,"nodeType":"RevertStatement","src":"13414:48:40"}]}},{"expression":{"arguments":[{"id":7328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"13496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":7326,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:40","typeDescriptions":{}}},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":7311,"id":7330,"nodeType":"Return","src":"13482:20:40"}]},"documentation":{"id":7305,"nodeType":"StructuredDocumentation","src":"13015:276:40","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":7332,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7307,"mutability":"mutable","name":"value","nameLocation":"13322:5:40","nodeType":"VariableDeclaration","scope":7332,"src":"13314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7306,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:40"},"returnParameters":{"id":7311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7332,"src":"13352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":7309,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:40","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:40"},"scope":8398,"src":"13296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7359,"nodeType":"Block","src":"13860:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7335,"src":"13874:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":7342,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":7341,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":7345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:40","memberName":"max","nodeType":"MemberAccess","src":"13882:16:40","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7353,"nodeType":"IfStatement","src":"13870:103:40","trueBody":{"id":7352,"nodeType":"Block","src":"13900:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":7348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:40","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":7349,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7335,"src":"13956:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7347,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"13921:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7351,"nodeType":"RevertStatement","src":"13914:48:40"}]}},{"expression":{"arguments":[{"id":7356,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7335,"src":"13996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":7354,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:40","typeDescriptions":{}}},"id":7357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":7339,"id":7358,"nodeType":"Return","src":"13982:20:40"}]},"documentation":{"id":7333,"nodeType":"StructuredDocumentation","src":"13515:276:40","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":7360,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:40","nodeType":"FunctionDefinition","parameters":{"id":7336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7335,"mutability":"mutable","name":"value","nameLocation":"13822:5:40","nodeType":"VariableDeclaration","scope":7360,"src":"13814:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7334,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:40"},"returnParameters":{"id":7339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7360,"src":"13852:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":7337,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:40","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:40"},"scope":8398,"src":"13796:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7387,"nodeType":"Block","src":"14360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"14374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":7370,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":7369,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":7373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:40","memberName":"max","nodeType":"MemberAccess","src":"14382:16:40","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7381,"nodeType":"IfStatement","src":"14370:103:40","trueBody":{"id":7380,"nodeType":"Block","src":"14400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":7377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"14456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7375,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"14421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7379,"nodeType":"RevertStatement","src":"14414:48:40"}]}},{"expression":{"arguments":[{"id":7384,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"14496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":7382,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:40","typeDescriptions":{}}},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":7367,"id":7386,"nodeType":"Return","src":"14482:20:40"}]},"documentation":{"id":7361,"nodeType":"StructuredDocumentation","src":"14015:276:40","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":7388,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7363,"mutability":"mutable","name":"value","nameLocation":"14322:5:40","nodeType":"VariableDeclaration","scope":7388,"src":"14314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7362,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:40"},"returnParameters":{"id":7367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7388,"src":"14352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":7365,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:40","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:40"},"scope":8398,"src":"14296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7415,"nodeType":"Block","src":"14860:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"14874:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":7398,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":7397,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":7401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:40","memberName":"max","nodeType":"MemberAccess","src":"14882:16:40","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7409,"nodeType":"IfStatement","src":"14870:103:40","trueBody":{"id":7408,"nodeType":"Block","src":"14900:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":7404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:40","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":7405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"14956:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7403,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"14921:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7407,"nodeType":"RevertStatement","src":"14914:48:40"}]}},{"expression":{"arguments":[{"id":7412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"14996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":7410,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:40","typeDescriptions":{}}},"id":7413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":7395,"id":7414,"nodeType":"Return","src":"14982:20:40"}]},"documentation":{"id":7389,"nodeType":"StructuredDocumentation","src":"14515:276:40","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":7416,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:40","nodeType":"FunctionDefinition","parameters":{"id":7392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7391,"mutability":"mutable","name":"value","nameLocation":"14822:5:40","nodeType":"VariableDeclaration","scope":7416,"src":"14814:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7390,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:40"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7416,"src":"14852:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":7393,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:40","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:40"},"scope":8398,"src":"14796:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7443,"nodeType":"Block","src":"15360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7424,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"15374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":7426,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":7425,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":7429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:40","memberName":"max","nodeType":"MemberAccess","src":"15382:16:40","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7437,"nodeType":"IfStatement","src":"15370:103:40","trueBody":{"id":7436,"nodeType":"Block","src":"15400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":7433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"15456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7431,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"15421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7435,"nodeType":"RevertStatement","src":"15414:48:40"}]}},{"expression":{"arguments":[{"id":7440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7419,"src":"15496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":7438,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:40","typeDescriptions":{}}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":7423,"id":7442,"nodeType":"Return","src":"15482:20:40"}]},"documentation":{"id":7417,"nodeType":"StructuredDocumentation","src":"15015:276:40","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":7444,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7419,"mutability":"mutable","name":"value","nameLocation":"15322:5:40","nodeType":"VariableDeclaration","scope":7444,"src":"15314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7418,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:40"},"returnParameters":{"id":7423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7444,"src":"15352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7421,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:40","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:40"},"scope":8398,"src":"15296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7471,"nodeType":"Block","src":"15860:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"15874:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":7454,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":7453,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:40","memberName":"max","nodeType":"MemberAccess","src":"15882:16:40","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7465,"nodeType":"IfStatement","src":"15870:103:40","trueBody":{"id":7464,"nodeType":"Block","src":"15900:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":7460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:40","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":7461,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"15956:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7459,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"15921:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7463,"nodeType":"RevertStatement","src":"15914:48:40"}]}},{"expression":{"arguments":[{"id":7468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"15996:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":7466,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:40","typeDescriptions":{}}},"id":7469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":7451,"id":7470,"nodeType":"Return","src":"15982:20:40"}]},"documentation":{"id":7445,"nodeType":"StructuredDocumentation","src":"15515:276:40","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":7472,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:40","nodeType":"FunctionDefinition","parameters":{"id":7448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7447,"mutability":"mutable","name":"value","nameLocation":"15822:5:40","nodeType":"VariableDeclaration","scope":7472,"src":"15814:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7446,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:40"},"returnParameters":{"id":7451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7472,"src":"15852:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":7449,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:40","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:40"},"scope":8398,"src":"15796:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7499,"nodeType":"Block","src":"16360:149:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7480,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"16374:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":7482,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":7481,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":7485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:40","memberName":"max","nodeType":"MemberAccess","src":"16382:16:40","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7493,"nodeType":"IfStatement","src":"16370:103:40","trueBody":{"id":7492,"nodeType":"Block","src":"16400:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":7488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:40","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":7489,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"16456:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7487,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"16421:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7491,"nodeType":"RevertStatement","src":"16414:48:40"}]}},{"expression":{"arguments":[{"id":7496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"16496:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":7494,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:40","typeDescriptions":{}}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":7479,"id":7498,"nodeType":"Return","src":"16482:20:40"}]},"documentation":{"id":7473,"nodeType":"StructuredDocumentation","src":"16015:276:40","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":7500,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:40","nodeType":"FunctionDefinition","parameters":{"id":7476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7475,"mutability":"mutable","name":"value","nameLocation":"16322:5:40","nodeType":"VariableDeclaration","scope":7500,"src":"16314:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7474,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:40"},"returnParameters":{"id":7479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7500,"src":"16352:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":7477,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:40","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:40"},"scope":8398,"src":"16296:213:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7527,"nodeType":"Block","src":"16854:146:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"16868:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":7511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7510,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":7509,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":7513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:40","memberName":"max","nodeType":"MemberAccess","src":"16876:15:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7521,"nodeType":"IfStatement","src":"16864:101:40","trueBody":{"id":7520,"nodeType":"Block","src":"16893:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":7516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:40","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":7517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"16948:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7515,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"16914:30:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":7518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7519,"nodeType":"RevertStatement","src":"16907:47:40"}]}},{"expression":{"arguments":[{"id":7524,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"16987:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7522,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:40","typeDescriptions":{}}},"id":7525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":7507,"id":7526,"nodeType":"Return","src":"16974:19:40"}]},"documentation":{"id":7501,"nodeType":"StructuredDocumentation","src":"16515:272:40","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":7528,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:40","nodeType":"FunctionDefinition","parameters":{"id":7504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7503,"mutability":"mutable","name":"value","nameLocation":"16817:5:40","nodeType":"VariableDeclaration","scope":7528,"src":"16809:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7502,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:40"},"returnParameters":{"id":7507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7528,"src":"16847:5:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7505,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:40","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:40"},"scope":8398,"src":"16792:208:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7550,"nodeType":"Block","src":"17236:128:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"17250:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7544,"nodeType":"IfStatement","src":"17246:81:40","trueBody":{"id":7543,"nodeType":"Block","src":"17261:66:40","statements":[{"errorCall":{"arguments":[{"id":7540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"17310:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7539,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6648,"src":"17282:27:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$_t_error_$","typeString":"function (int256) pure returns (error)"}},"id":7541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7542,"nodeType":"RevertStatement","src":"17275:41:40"}]}},{"expression":{"arguments":[{"id":7547,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"17351:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7545,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:40","typeDescriptions":{}}},"id":7548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7535,"id":7549,"nodeType":"Return","src":"17336:21:40"}]},"documentation":{"id":7529,"nodeType":"StructuredDocumentation","src":"17006:160:40","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":7551,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:40","nodeType":"FunctionDefinition","parameters":{"id":7532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7531,"mutability":"mutable","name":"value","nameLocation":"17197:5:40","nodeType":"VariableDeclaration","scope":7551,"src":"17190:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7530,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:40"},"returnParameters":{"id":7535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7534,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7551,"src":"17227:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7533,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:40"},"scope":8398,"src":"17171:193:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7576,"nodeType":"Block","src":"17761:150:40","statements":[{"expression":{"id":7564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7559,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"17771:10:40","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"17791:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":7560,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:40","typeDescriptions":{}}},"id":7563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:40","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":7565,"nodeType":"ExpressionStatement","src":"17771:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7566,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"17811:10:40","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7567,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"17825:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7575,"nodeType":"IfStatement","src":"17807:98:40","trueBody":{"id":7574,"nodeType":"Block","src":"17832:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":7570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:40","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":7571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"17888:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7569,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"17853:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7573,"nodeType":"RevertStatement","src":"17846:48:40"}]}}]},"documentation":{"id":7552,"nodeType":"StructuredDocumentation","src":"17370:312:40","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":7577,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:40","nodeType":"FunctionDefinition","parameters":{"id":7555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7554,"mutability":"mutable","name":"value","nameLocation":"17712:5:40","nodeType":"VariableDeclaration","scope":7577,"src":"17705:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7553,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:40"},"returnParameters":{"id":7558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7557,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:40","nodeType":"VariableDeclaration","scope":7577,"src":"17742:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":7556,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:40","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:40"},"scope":8398,"src":"17687:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7602,"nodeType":"Block","src":"18308:150:40","statements":[{"expression":{"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7585,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7583,"src":"18318:10:40","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7580,"src":"18338:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":7586,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:40","typeDescriptions":{}}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:40","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":7591,"nodeType":"ExpressionStatement","src":"18318:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7592,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7583,"src":"18358:10:40","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7580,"src":"18372:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7601,"nodeType":"IfStatement","src":"18354:98:40","trueBody":{"id":7600,"nodeType":"Block","src":"18379:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":7596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:40","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":7597,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7580,"src":"18435:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7595,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"18400:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7599,"nodeType":"RevertStatement","src":"18393:48:40"}]}}]},"documentation":{"id":7578,"nodeType":"StructuredDocumentation","src":"17917:312:40","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":7603,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:40","nodeType":"FunctionDefinition","parameters":{"id":7581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7580,"mutability":"mutable","name":"value","nameLocation":"18259:5:40","nodeType":"VariableDeclaration","scope":7603,"src":"18252:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7579,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:40"},"returnParameters":{"id":7584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7583,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:40","nodeType":"VariableDeclaration","scope":7603,"src":"18289:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":7582,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:40","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:40"},"scope":8398,"src":"18234:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7628,"nodeType":"Block","src":"18855:150:40","statements":[{"expression":{"id":7616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7611,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7609,"src":"18865:10:40","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"18885:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":7612,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:40","typeDescriptions":{}}},"id":7615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:40","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":7617,"nodeType":"ExpressionStatement","src":"18865:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7618,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7609,"src":"18905:10:40","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"18919:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7627,"nodeType":"IfStatement","src":"18901:98:40","trueBody":{"id":7626,"nodeType":"Block","src":"18926:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":7622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:40","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":7623,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"18982:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7621,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"18947:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7625,"nodeType":"RevertStatement","src":"18940:48:40"}]}}]},"documentation":{"id":7604,"nodeType":"StructuredDocumentation","src":"18464:312:40","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":7629,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:40","nodeType":"FunctionDefinition","parameters":{"id":7607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7606,"mutability":"mutable","name":"value","nameLocation":"18806:5:40","nodeType":"VariableDeclaration","scope":7629,"src":"18799:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7605,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:40"},"returnParameters":{"id":7610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7609,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:40","nodeType":"VariableDeclaration","scope":7629,"src":"18836:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":7608,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:40","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:40"},"scope":8398,"src":"18781:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7654,"nodeType":"Block","src":"19402:150:40","statements":[{"expression":{"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7637,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7635,"src":"19412:10:40","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"19432:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":7638,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:40","typeDescriptions":{}}},"id":7641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:40","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":7643,"nodeType":"ExpressionStatement","src":"19412:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7644,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7635,"src":"19452:10:40","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7645,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"19466:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7653,"nodeType":"IfStatement","src":"19448:98:40","trueBody":{"id":7652,"nodeType":"Block","src":"19473:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":7648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:40","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":7649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"19529:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7647,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"19494:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7651,"nodeType":"RevertStatement","src":"19487:48:40"}]}}]},"documentation":{"id":7630,"nodeType":"StructuredDocumentation","src":"19011:312:40","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":7655,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:40","nodeType":"FunctionDefinition","parameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"value","nameLocation":"19353:5:40","nodeType":"VariableDeclaration","scope":7655,"src":"19346:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7631,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:40"},"returnParameters":{"id":7636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7635,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:40","nodeType":"VariableDeclaration","scope":7655,"src":"19383:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":7634,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:40","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:40"},"scope":8398,"src":"19328:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7680,"nodeType":"Block","src":"19949:150:40","statements":[{"expression":{"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7663,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"19959:10:40","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"19979:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":7664,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:40","typeDescriptions":{}}},"id":7667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:40","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":7669,"nodeType":"ExpressionStatement","src":"19959:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7670,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7661,"src":"19999:10:40","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7671,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"20013:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7679,"nodeType":"IfStatement","src":"19995:98:40","trueBody":{"id":7678,"nodeType":"Block","src":"20020:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":7674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:40","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":7675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"20076:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7673,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"20041:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7677,"nodeType":"RevertStatement","src":"20034:48:40"}]}}]},"documentation":{"id":7656,"nodeType":"StructuredDocumentation","src":"19558:312:40","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":7681,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:40","nodeType":"FunctionDefinition","parameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7658,"mutability":"mutable","name":"value","nameLocation":"19900:5:40","nodeType":"VariableDeclaration","scope":7681,"src":"19893:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7657,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:40"},"returnParameters":{"id":7662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7661,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:40","nodeType":"VariableDeclaration","scope":7681,"src":"19930:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":7660,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:40","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:40"},"scope":8398,"src":"19875:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7706,"nodeType":"Block","src":"20496:150:40","statements":[{"expression":{"id":7694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7689,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7687,"src":"20506:10:40","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7692,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"20526:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":7690,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:40","typeDescriptions":{}}},"id":7693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:40","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":7695,"nodeType":"ExpressionStatement","src":"20506:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7696,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7687,"src":"20546:10:40","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7697,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"20560:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7705,"nodeType":"IfStatement","src":"20542:98:40","trueBody":{"id":7704,"nodeType":"Block","src":"20567:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":7700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:40","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":7701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"20623:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7699,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"20588:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7703,"nodeType":"RevertStatement","src":"20581:48:40"}]}}]},"documentation":{"id":7682,"nodeType":"StructuredDocumentation","src":"20105:312:40","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":7707,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:40","nodeType":"FunctionDefinition","parameters":{"id":7685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7684,"mutability":"mutable","name":"value","nameLocation":"20447:5:40","nodeType":"VariableDeclaration","scope":7707,"src":"20440:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7683,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:40"},"returnParameters":{"id":7688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7687,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:40","nodeType":"VariableDeclaration","scope":7707,"src":"20477:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":7686,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:40","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:40"},"scope":8398,"src":"20422:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7732,"nodeType":"Block","src":"21043:150:40","statements":[{"expression":{"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7715,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"21053:10:40","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7718,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"21073:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":7716,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:40","typeDescriptions":{}}},"id":7719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:40","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":7721,"nodeType":"ExpressionStatement","src":"21053:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7722,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"21093:10:40","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7723,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"21107:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7731,"nodeType":"IfStatement","src":"21089:98:40","trueBody":{"id":7730,"nodeType":"Block","src":"21114:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":7726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:40","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":7727,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7710,"src":"21170:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7725,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"21135:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7729,"nodeType":"RevertStatement","src":"21128:48:40"}]}}]},"documentation":{"id":7708,"nodeType":"StructuredDocumentation","src":"20652:312:40","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":7733,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:40","nodeType":"FunctionDefinition","parameters":{"id":7711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7710,"mutability":"mutable","name":"value","nameLocation":"20994:5:40","nodeType":"VariableDeclaration","scope":7733,"src":"20987:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7709,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:40"},"returnParameters":{"id":7714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7713,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:40","nodeType":"VariableDeclaration","scope":7733,"src":"21024:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":7712,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:40","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:40"},"scope":8398,"src":"20969:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7758,"nodeType":"Block","src":"21590:150:40","statements":[{"expression":{"id":7746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7741,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"21600:10:40","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"21620:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":7742,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:40","typeDescriptions":{}}},"id":7745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:40","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":7747,"nodeType":"ExpressionStatement","src":"21600:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7748,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"21640:10:40","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7749,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"21654:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7757,"nodeType":"IfStatement","src":"21636:98:40","trueBody":{"id":7756,"nodeType":"Block","src":"21661:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:40","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":7753,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"21717:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7751,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"21682:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7755,"nodeType":"RevertStatement","src":"21675:48:40"}]}}]},"documentation":{"id":7734,"nodeType":"StructuredDocumentation","src":"21199:312:40","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":7759,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:40","nodeType":"FunctionDefinition","parameters":{"id":7737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7736,"mutability":"mutable","name":"value","nameLocation":"21541:5:40","nodeType":"VariableDeclaration","scope":7759,"src":"21534:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7735,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:40"},"returnParameters":{"id":7740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7739,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:40","nodeType":"VariableDeclaration","scope":7759,"src":"21571:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":7738,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:40","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:40"},"scope":8398,"src":"21516:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7784,"nodeType":"Block","src":"22137:150:40","statements":[{"expression":{"id":7772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7767,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7765,"src":"22147:10:40","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7770,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"22167:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":7768,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:40","typeDescriptions":{}}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:40","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":7773,"nodeType":"ExpressionStatement","src":"22147:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7774,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7765,"src":"22187:10:40","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7775,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"22201:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7783,"nodeType":"IfStatement","src":"22183:98:40","trueBody":{"id":7782,"nodeType":"Block","src":"22208:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":7778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:40","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":7779,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7762,"src":"22264:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7777,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"22229:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7781,"nodeType":"RevertStatement","src":"22222:48:40"}]}}]},"documentation":{"id":7760,"nodeType":"StructuredDocumentation","src":"21746:312:40","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":7785,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:40","nodeType":"FunctionDefinition","parameters":{"id":7763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7762,"mutability":"mutable","name":"value","nameLocation":"22088:5:40","nodeType":"VariableDeclaration","scope":7785,"src":"22081:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7761,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:40"},"returnParameters":{"id":7766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7765,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:40","nodeType":"VariableDeclaration","scope":7785,"src":"22118:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":7764,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:40","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:40"},"scope":8398,"src":"22063:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7810,"nodeType":"Block","src":"22684:150:40","statements":[{"expression":{"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7793,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"22694:10:40","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7796,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7788,"src":"22714:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":7794,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:40","typeDescriptions":{}}},"id":7797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:40","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":7799,"nodeType":"ExpressionStatement","src":"22694:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7800,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"22734:10:40","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7788,"src":"22748:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7809,"nodeType":"IfStatement","src":"22730:98:40","trueBody":{"id":7808,"nodeType":"Block","src":"22755:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":7804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:40","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":7805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7788,"src":"22811:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7803,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"22776:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7807,"nodeType":"RevertStatement","src":"22769:48:40"}]}}]},"documentation":{"id":7786,"nodeType":"StructuredDocumentation","src":"22293:312:40","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":7811,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:40","nodeType":"FunctionDefinition","parameters":{"id":7789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7788,"mutability":"mutable","name":"value","nameLocation":"22635:5:40","nodeType":"VariableDeclaration","scope":7811,"src":"22628:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7787,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:40"},"returnParameters":{"id":7792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7791,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:40","nodeType":"VariableDeclaration","scope":7811,"src":"22665:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":7790,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:40","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:40"},"scope":8398,"src":"22610:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7836,"nodeType":"Block","src":"23231:150:40","statements":[{"expression":{"id":7824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7819,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7817,"src":"23241:10:40","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"23261:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":7820,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:40","typeDescriptions":{}}},"id":7823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:40","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":7825,"nodeType":"ExpressionStatement","src":"23241:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7826,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7817,"src":"23281:10:40","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"23295:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7835,"nodeType":"IfStatement","src":"23277:98:40","trueBody":{"id":7834,"nodeType":"Block","src":"23302:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":7830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:40","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":7831,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"23358:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7829,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"23323:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7833,"nodeType":"RevertStatement","src":"23316:48:40"}]}}]},"documentation":{"id":7812,"nodeType":"StructuredDocumentation","src":"22840:312:40","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":7837,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:40","nodeType":"FunctionDefinition","parameters":{"id":7815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7814,"mutability":"mutable","name":"value","nameLocation":"23182:5:40","nodeType":"VariableDeclaration","scope":7837,"src":"23175:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7813,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:40"},"returnParameters":{"id":7818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7817,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:40","nodeType":"VariableDeclaration","scope":7837,"src":"23212:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":7816,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:40","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:40"},"scope":8398,"src":"23157:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7862,"nodeType":"Block","src":"23778:150:40","statements":[{"expression":{"id":7850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7845,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7843,"src":"23788:10:40","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7848,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"23808:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":7846,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:40","typeDescriptions":{}}},"id":7849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:40","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":7851,"nodeType":"ExpressionStatement","src":"23788:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7852,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7843,"src":"23828:10:40","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7853,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"23842:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7861,"nodeType":"IfStatement","src":"23824:98:40","trueBody":{"id":7860,"nodeType":"Block","src":"23849:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":7856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:40","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":7857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"23905:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7855,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"23870:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7859,"nodeType":"RevertStatement","src":"23863:48:40"}]}}]},"documentation":{"id":7838,"nodeType":"StructuredDocumentation","src":"23387:312:40","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":7863,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:40","nodeType":"FunctionDefinition","parameters":{"id":7841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7840,"mutability":"mutable","name":"value","nameLocation":"23729:5:40","nodeType":"VariableDeclaration","scope":7863,"src":"23722:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7839,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:40"},"returnParameters":{"id":7844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7843,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:40","nodeType":"VariableDeclaration","scope":7863,"src":"23759:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":7842,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:40","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:40"},"scope":8398,"src":"23704:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7888,"nodeType":"Block","src":"24325:150:40","statements":[{"expression":{"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7871,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7869,"src":"24335:10:40","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7874,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"24355:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":7872,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:40","typeDescriptions":{}}},"id":7875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:40","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":7877,"nodeType":"ExpressionStatement","src":"24335:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7878,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7869,"src":"24375:10:40","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7879,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"24389:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7887,"nodeType":"IfStatement","src":"24371:98:40","trueBody":{"id":7886,"nodeType":"Block","src":"24396:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:40","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":7883,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7866,"src":"24452:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7881,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"24417:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7885,"nodeType":"RevertStatement","src":"24410:48:40"}]}}]},"documentation":{"id":7864,"nodeType":"StructuredDocumentation","src":"23934:312:40","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":7889,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:40","nodeType":"FunctionDefinition","parameters":{"id":7867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7866,"mutability":"mutable","name":"value","nameLocation":"24276:5:40","nodeType":"VariableDeclaration","scope":7889,"src":"24269:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7865,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:40"},"returnParameters":{"id":7870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7869,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:40","nodeType":"VariableDeclaration","scope":7889,"src":"24306:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":7868,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:40","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:40"},"scope":8398,"src":"24251:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7914,"nodeType":"Block","src":"24872:150:40","statements":[{"expression":{"id":7902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7897,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"24882:10:40","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7900,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"24902:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":7898,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:40","typeDescriptions":{}}},"id":7901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:40","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":7903,"nodeType":"ExpressionStatement","src":"24882:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7904,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"24922:10:40","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7905,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"24936:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7913,"nodeType":"IfStatement","src":"24918:98:40","trueBody":{"id":7912,"nodeType":"Block","src":"24943:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:40","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":7909,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7892,"src":"24999:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7907,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"24964:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7911,"nodeType":"RevertStatement","src":"24957:48:40"}]}}]},"documentation":{"id":7890,"nodeType":"StructuredDocumentation","src":"24481:312:40","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":7915,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:40","nodeType":"FunctionDefinition","parameters":{"id":7893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7892,"mutability":"mutable","name":"value","nameLocation":"24823:5:40","nodeType":"VariableDeclaration","scope":7915,"src":"24816:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7891,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:40"},"returnParameters":{"id":7896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7895,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:40","nodeType":"VariableDeclaration","scope":7915,"src":"24853:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":7894,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:40","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:40"},"scope":8398,"src":"24798:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7940,"nodeType":"Block","src":"25419:150:40","statements":[{"expression":{"id":7928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7923,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7921,"src":"25429:10:40","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7926,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"25449:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":7924,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:40","typeDescriptions":{}}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:40","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":7929,"nodeType":"ExpressionStatement","src":"25429:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7930,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7921,"src":"25469:10:40","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"25483:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7939,"nodeType":"IfStatement","src":"25465:98:40","trueBody":{"id":7938,"nodeType":"Block","src":"25490:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":7934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:40","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":7935,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"25546:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7933,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"25511:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7937,"nodeType":"RevertStatement","src":"25504:48:40"}]}}]},"documentation":{"id":7916,"nodeType":"StructuredDocumentation","src":"25028:312:40","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":7941,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:40","nodeType":"FunctionDefinition","parameters":{"id":7919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7918,"mutability":"mutable","name":"value","nameLocation":"25370:5:40","nodeType":"VariableDeclaration","scope":7941,"src":"25363:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7917,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:40"},"returnParameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7921,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:40","nodeType":"VariableDeclaration","scope":7941,"src":"25400:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":7920,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:40","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:40"},"scope":8398,"src":"25345:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7966,"nodeType":"Block","src":"25966:150:40","statements":[{"expression":{"id":7954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7949,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7947,"src":"25976:10:40","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"25996:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":7950,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:40","typeDescriptions":{}}},"id":7953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:40","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":7955,"nodeType":"ExpressionStatement","src":"25976:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7956,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7947,"src":"26016:10:40","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"26030:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7965,"nodeType":"IfStatement","src":"26012:98:40","trueBody":{"id":7964,"nodeType":"Block","src":"26037:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":7960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:40","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":7961,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"26093:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7959,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"26058:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7963,"nodeType":"RevertStatement","src":"26051:48:40"}]}}]},"documentation":{"id":7942,"nodeType":"StructuredDocumentation","src":"25575:312:40","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":7967,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:40","nodeType":"FunctionDefinition","parameters":{"id":7945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7944,"mutability":"mutable","name":"value","nameLocation":"25917:5:40","nodeType":"VariableDeclaration","scope":7967,"src":"25910:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7943,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:40"},"returnParameters":{"id":7948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7947,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:40","nodeType":"VariableDeclaration","scope":7967,"src":"25947:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":7946,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:40","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:40"},"scope":8398,"src":"25892:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7992,"nodeType":"Block","src":"26513:150:40","statements":[{"expression":{"id":7980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7975,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"26523:10:40","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"26543:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":7976,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:40","typeDescriptions":{}}},"id":7979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:40","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":7981,"nodeType":"ExpressionStatement","src":"26523:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7982,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7973,"src":"26563:10:40","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7983,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"26577:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7991,"nodeType":"IfStatement","src":"26559:98:40","trueBody":{"id":7990,"nodeType":"Block","src":"26584:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":7986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:40","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":7987,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"26640:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7985,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"26605:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7989,"nodeType":"RevertStatement","src":"26598:48:40"}]}}]},"documentation":{"id":7968,"nodeType":"StructuredDocumentation","src":"26122:312:40","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":7993,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:40","nodeType":"FunctionDefinition","parameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"value","nameLocation":"26464:5:40","nodeType":"VariableDeclaration","scope":7993,"src":"26457:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7969,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:40"},"returnParameters":{"id":7974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7973,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:40","nodeType":"VariableDeclaration","scope":7993,"src":"26494:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":7972,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:40","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:40"},"scope":8398,"src":"26439:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8018,"nodeType":"Block","src":"27060:150:40","statements":[{"expression":{"id":8006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8001,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"27070:10:40","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"27090:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":8002,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:40","typeDescriptions":{}}},"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:40","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":8007,"nodeType":"ExpressionStatement","src":"27070:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8008,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7999,"src":"27110:10:40","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"27124:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8017,"nodeType":"IfStatement","src":"27106:98:40","trueBody":{"id":8016,"nodeType":"Block","src":"27131:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":8012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:40","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":8013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7996,"src":"27187:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8011,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"27152:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8015,"nodeType":"RevertStatement","src":"27145:48:40"}]}}]},"documentation":{"id":7994,"nodeType":"StructuredDocumentation","src":"26669:312:40","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":8019,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:40","nodeType":"FunctionDefinition","parameters":{"id":7997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7996,"mutability":"mutable","name":"value","nameLocation":"27011:5:40","nodeType":"VariableDeclaration","scope":8019,"src":"27004:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7995,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:40"},"returnParameters":{"id":8000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7999,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:40","nodeType":"VariableDeclaration","scope":8019,"src":"27041:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":7998,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:40","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:40"},"scope":8398,"src":"26986:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8044,"nodeType":"Block","src":"27607:150:40","statements":[{"expression":{"id":8032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8027,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8025,"src":"27617:10:40","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8022,"src":"27637:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":8028,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:40","typeDescriptions":{}}},"id":8031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:40","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":8033,"nodeType":"ExpressionStatement","src":"27617:26:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8034,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8025,"src":"27657:10:40","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8035,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8022,"src":"27671:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8043,"nodeType":"IfStatement","src":"27653:98:40","trueBody":{"id":8042,"nodeType":"Block","src":"27678:73:40","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":8038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:40","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":8039,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8022,"src":"27734:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8037,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"27699:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8041,"nodeType":"RevertStatement","src":"27692:48:40"}]}}]},"documentation":{"id":8020,"nodeType":"StructuredDocumentation","src":"27216:312:40","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":8045,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:40","nodeType":"FunctionDefinition","parameters":{"id":8023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8022,"mutability":"mutable","name":"value","nameLocation":"27558:5:40","nodeType":"VariableDeclaration","scope":8045,"src":"27551:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8021,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:40"},"returnParameters":{"id":8026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8025,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:40","nodeType":"VariableDeclaration","scope":8045,"src":"27588:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":8024,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:40","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:40"},"scope":8398,"src":"27533:224:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8070,"nodeType":"Block","src":"28147:148:40","statements":[{"expression":{"id":8058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8053,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"28157:10:40","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8056,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8048,"src":"28176:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":8054,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:40","typeDescriptions":{}}},"id":8057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:40","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":8059,"nodeType":"ExpressionStatement","src":"28157:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8060,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"28196:10:40","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8048,"src":"28210:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8069,"nodeType":"IfStatement","src":"28192:97:40","trueBody":{"id":8068,"nodeType":"Block","src":"28217:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:40","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":8065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8048,"src":"28272:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8063,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"28238:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8067,"nodeType":"RevertStatement","src":"28231:47:40"}]}}]},"documentation":{"id":8046,"nodeType":"StructuredDocumentation","src":"27763:307:40","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":8071,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:40","nodeType":"FunctionDefinition","parameters":{"id":8049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8048,"mutability":"mutable","name":"value","nameLocation":"28099:5:40","nodeType":"VariableDeclaration","scope":8071,"src":"28092:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8047,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:40"},"returnParameters":{"id":8052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8051,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:40","nodeType":"VariableDeclaration","scope":8071,"src":"28129:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":8050,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:40","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:40"},"scope":8398,"src":"28075:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8096,"nodeType":"Block","src":"28685:148:40","statements":[{"expression":{"id":8084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8079,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"28695:10:40","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8074,"src":"28714:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":8080,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:40","typeDescriptions":{}}},"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:40","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":8085,"nodeType":"ExpressionStatement","src":"28695:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8086,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"28734:10:40","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8087,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8074,"src":"28748:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8095,"nodeType":"IfStatement","src":"28730:97:40","trueBody":{"id":8094,"nodeType":"Block","src":"28755:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":8090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:40","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":8091,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8074,"src":"28810:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8089,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"28776:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8093,"nodeType":"RevertStatement","src":"28769:47:40"}]}}]},"documentation":{"id":8072,"nodeType":"StructuredDocumentation","src":"28301:307:40","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":8097,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:40","nodeType":"FunctionDefinition","parameters":{"id":8075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8074,"mutability":"mutable","name":"value","nameLocation":"28637:5:40","nodeType":"VariableDeclaration","scope":8097,"src":"28630:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8073,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:40"},"returnParameters":{"id":8078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:40","nodeType":"VariableDeclaration","scope":8097,"src":"28667:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":8076,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:40","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:40"},"scope":8398,"src":"28613:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8122,"nodeType":"Block","src":"29223:148:40","statements":[{"expression":{"id":8110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8105,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"29233:10:40","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8108,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"29252:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":8106,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:40","typeDescriptions":{}}},"id":8109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:40","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":8111,"nodeType":"ExpressionStatement","src":"29233:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8112,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8103,"src":"29272:10:40","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8113,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"29286:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8121,"nodeType":"IfStatement","src":"29268:97:40","trueBody":{"id":8120,"nodeType":"Block","src":"29293:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":8116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:40","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":8117,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"29348:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8115,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"29314:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8119,"nodeType":"RevertStatement","src":"29307:47:40"}]}}]},"documentation":{"id":8098,"nodeType":"StructuredDocumentation","src":"28839:307:40","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":8123,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:40","nodeType":"FunctionDefinition","parameters":{"id":8101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"value","nameLocation":"29175:5:40","nodeType":"VariableDeclaration","scope":8123,"src":"29168:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8099,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:40"},"returnParameters":{"id":8104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8103,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:40","nodeType":"VariableDeclaration","scope":8123,"src":"29205:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":8102,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:40","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:40"},"scope":8398,"src":"29151:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8148,"nodeType":"Block","src":"29761:148:40","statements":[{"expression":{"id":8136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8131,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8129,"src":"29771:10:40","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8126,"src":"29790:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":8132,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:40","typeDescriptions":{}}},"id":8135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:40","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":8137,"nodeType":"ExpressionStatement","src":"29771:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8138,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8129,"src":"29810:10:40","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8139,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8126,"src":"29824:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8147,"nodeType":"IfStatement","src":"29806:97:40","trueBody":{"id":8146,"nodeType":"Block","src":"29831:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":8142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:40","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":8143,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8126,"src":"29886:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8141,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"29852:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8145,"nodeType":"RevertStatement","src":"29845:47:40"}]}}]},"documentation":{"id":8124,"nodeType":"StructuredDocumentation","src":"29377:307:40","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":8149,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:40","nodeType":"FunctionDefinition","parameters":{"id":8127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8126,"mutability":"mutable","name":"value","nameLocation":"29713:5:40","nodeType":"VariableDeclaration","scope":8149,"src":"29706:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8125,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:40"},"returnParameters":{"id":8130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8129,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:40","nodeType":"VariableDeclaration","scope":8149,"src":"29743:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":8128,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:40","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:40"},"scope":8398,"src":"29689:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8174,"nodeType":"Block","src":"30299:148:40","statements":[{"expression":{"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8157,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"30309:10:40","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"30328:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":8158,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:40","typeDescriptions":{}}},"id":8161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:40","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":8163,"nodeType":"ExpressionStatement","src":"30309:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8164,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"30348:10:40","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"30362:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8173,"nodeType":"IfStatement","src":"30344:97:40","trueBody":{"id":8172,"nodeType":"Block","src":"30369:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":8168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:40","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":8169,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"30424:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8167,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"30390:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8171,"nodeType":"RevertStatement","src":"30383:47:40"}]}}]},"documentation":{"id":8150,"nodeType":"StructuredDocumentation","src":"29915:307:40","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":8175,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:40","nodeType":"FunctionDefinition","parameters":{"id":8153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8152,"mutability":"mutable","name":"value","nameLocation":"30251:5:40","nodeType":"VariableDeclaration","scope":8175,"src":"30244:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8151,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:40"},"returnParameters":{"id":8156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8155,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:40","nodeType":"VariableDeclaration","scope":8175,"src":"30281:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":8154,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:40","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:40"},"scope":8398,"src":"30227:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8200,"nodeType":"Block","src":"30837:148:40","statements":[{"expression":{"id":8188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8183,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"30847:10:40","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8178,"src":"30866:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":8184,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:40","typeDescriptions":{}}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:40","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":8189,"nodeType":"ExpressionStatement","src":"30847:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8190,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8181,"src":"30886:10:40","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8178,"src":"30900:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8199,"nodeType":"IfStatement","src":"30882:97:40","trueBody":{"id":8198,"nodeType":"Block","src":"30907:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":8194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:40","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":8195,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8178,"src":"30962:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8193,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"30928:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8197,"nodeType":"RevertStatement","src":"30921:47:40"}]}}]},"documentation":{"id":8176,"nodeType":"StructuredDocumentation","src":"30453:307:40","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":8201,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:40","nodeType":"FunctionDefinition","parameters":{"id":8179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8178,"mutability":"mutable","name":"value","nameLocation":"30789:5:40","nodeType":"VariableDeclaration","scope":8201,"src":"30782:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8177,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:40"},"returnParameters":{"id":8182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8181,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:40","nodeType":"VariableDeclaration","scope":8201,"src":"30819:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":8180,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:40","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:40"},"scope":8398,"src":"30765:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8226,"nodeType":"Block","src":"31375:148:40","statements":[{"expression":{"id":8214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8209,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"31385:10:40","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8212,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"31404:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":8210,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:40","typeDescriptions":{}}},"id":8213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:40","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":8215,"nodeType":"ExpressionStatement","src":"31385:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8216,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8207,"src":"31424:10:40","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8217,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"31438:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8225,"nodeType":"IfStatement","src":"31420:97:40","trueBody":{"id":8224,"nodeType":"Block","src":"31445:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":8220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:40","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":8221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8204,"src":"31500:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8219,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"31466:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8223,"nodeType":"RevertStatement","src":"31459:47:40"}]}}]},"documentation":{"id":8202,"nodeType":"StructuredDocumentation","src":"30991:307:40","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":8227,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:40","nodeType":"FunctionDefinition","parameters":{"id":8205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8204,"mutability":"mutable","name":"value","nameLocation":"31327:5:40","nodeType":"VariableDeclaration","scope":8227,"src":"31320:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8203,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:40"},"returnParameters":{"id":8208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8207,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:40","nodeType":"VariableDeclaration","scope":8227,"src":"31357:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":8206,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:40","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:40"},"scope":8398,"src":"31303:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8252,"nodeType":"Block","src":"31913:148:40","statements":[{"expression":{"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8235,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"31923:10:40","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8238,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"31942:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":8236,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:40","typeDescriptions":{}}},"id":8239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:40","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":8241,"nodeType":"ExpressionStatement","src":"31923:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8242,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"31962:10:40","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"31976:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8251,"nodeType":"IfStatement","src":"31958:97:40","trueBody":{"id":8250,"nodeType":"Block","src":"31983:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":8246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:40","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":8247,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"32038:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8245,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"32004:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8249,"nodeType":"RevertStatement","src":"31997:47:40"}]}}]},"documentation":{"id":8228,"nodeType":"StructuredDocumentation","src":"31529:307:40","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":8253,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:40","nodeType":"FunctionDefinition","parameters":{"id":8231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8230,"mutability":"mutable","name":"value","nameLocation":"31865:5:40","nodeType":"VariableDeclaration","scope":8253,"src":"31858:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8229,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:40"},"returnParameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8233,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:40","nodeType":"VariableDeclaration","scope":8253,"src":"31895:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":8232,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:40","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:40"},"scope":8398,"src":"31841:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8278,"nodeType":"Block","src":"32451:148:40","statements":[{"expression":{"id":8266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8261,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"32461:10:40","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8264,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"32480:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":8262,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:40","typeDescriptions":{}}},"id":8265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:40","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":8267,"nodeType":"ExpressionStatement","src":"32461:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8268,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"32500:10:40","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8269,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"32514:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8277,"nodeType":"IfStatement","src":"32496:97:40","trueBody":{"id":8276,"nodeType":"Block","src":"32521:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":8272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:40","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":8273,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"32576:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8271,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"32542:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8275,"nodeType":"RevertStatement","src":"32535:47:40"}]}}]},"documentation":{"id":8254,"nodeType":"StructuredDocumentation","src":"32067:307:40","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":8279,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:40","nodeType":"FunctionDefinition","parameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"value","nameLocation":"32403:5:40","nodeType":"VariableDeclaration","scope":8279,"src":"32396:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8255,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:40"},"returnParameters":{"id":8260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8259,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:40","nodeType":"VariableDeclaration","scope":8279,"src":"32433:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":8258,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:40","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:40"},"scope":8398,"src":"32379:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8304,"nodeType":"Block","src":"32989:148:40","statements":[{"expression":{"id":8292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8287,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8285,"src":"32999:10:40","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8282,"src":"33018:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":8288,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:40","typeDescriptions":{}}},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:40","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":8293,"nodeType":"ExpressionStatement","src":"32999:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8294,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8285,"src":"33038:10:40","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8295,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8282,"src":"33052:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8303,"nodeType":"IfStatement","src":"33034:97:40","trueBody":{"id":8302,"nodeType":"Block","src":"33059:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":8298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:40","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":8299,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8282,"src":"33114:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8297,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"33080:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8301,"nodeType":"RevertStatement","src":"33073:47:40"}]}}]},"documentation":{"id":8280,"nodeType":"StructuredDocumentation","src":"32605:307:40","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":8305,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:40","nodeType":"FunctionDefinition","parameters":{"id":8283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8282,"mutability":"mutable","name":"value","nameLocation":"32941:5:40","nodeType":"VariableDeclaration","scope":8305,"src":"32934:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8281,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:40"},"returnParameters":{"id":8286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8285,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:40","nodeType":"VariableDeclaration","scope":8305,"src":"32971:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":8284,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:40","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:40"},"scope":8398,"src":"32917:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8330,"nodeType":"Block","src":"33527:148:40","statements":[{"expression":{"id":8318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8313,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"33537:10:40","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8316,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8308,"src":"33556:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":8314,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:40","typeDescriptions":{}}},"id":8317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:40","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":8319,"nodeType":"ExpressionStatement","src":"33537:25:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8320,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"33576:10:40","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8308,"src":"33590:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8329,"nodeType":"IfStatement","src":"33572:97:40","trueBody":{"id":8328,"nodeType":"Block","src":"33597:72:40","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":8324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:40","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":8325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8308,"src":"33652:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8323,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"33618:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8327,"nodeType":"RevertStatement","src":"33611:47:40"}]}}]},"documentation":{"id":8306,"nodeType":"StructuredDocumentation","src":"33143:307:40","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":8331,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:40","nodeType":"FunctionDefinition","parameters":{"id":8309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8308,"mutability":"mutable","name":"value","nameLocation":"33479:5:40","nodeType":"VariableDeclaration","scope":8331,"src":"33472:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8307,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:40"},"returnParameters":{"id":8312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8311,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:40","nodeType":"VariableDeclaration","scope":8331,"src":"33509:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":8310,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:40","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:40"},"scope":8398,"src":"33455:220:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8356,"nodeType":"Block","src":"34058:146:40","statements":[{"expression":{"id":8344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8339,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"34068:10:40","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"34086:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":8340,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:40","typeDescriptions":{}}},"id":8343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:40","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":8345,"nodeType":"ExpressionStatement","src":"34068:24:40"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8346,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"34106:10:40","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8347,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"34120:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8355,"nodeType":"IfStatement","src":"34102:96:40","trueBody":{"id":8354,"nodeType":"Block","src":"34127:71:40","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":8350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:40","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":8351,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"34181:5:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8349,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"34148:29:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8353,"nodeType":"RevertStatement","src":"34141:46:40"}]}}]},"documentation":{"id":8332,"nodeType":"StructuredDocumentation","src":"33681:302:40","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":8357,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:40","nodeType":"FunctionDefinition","parameters":{"id":8335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8334,"mutability":"mutable","name":"value","nameLocation":"34011:5:40","nodeType":"VariableDeclaration","scope":8357,"src":"34004:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8333,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:40"},"returnParameters":{"id":8338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:40","nodeType":"VariableDeclaration","scope":8357,"src":"34041:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":8336,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:40","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:40"},"scope":8398,"src":"33988:216:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8386,"nodeType":"Block","src":"34444:250:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"34557:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":8370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8369,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:40","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":8368,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":8372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:40","memberName":"max","nodeType":"MemberAccess","src":"34573:16:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":8367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8366,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:40","typeDescriptions":{}}},"id":8373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8380,"nodeType":"IfStatement","src":"34553:105:40","trueBody":{"id":8379,"nodeType":"Block","src":"34592:66:40","statements":[{"errorCall":{"arguments":[{"id":8376,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"34641:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8375,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6660,"src":"34613:27:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":8378,"nodeType":"RevertStatement","src":"34606:41:40"}]}},{"expression":{"arguments":[{"id":8383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8360,"src":"34681:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8381,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:40","typeDescriptions":{}}},"id":8384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8364,"id":8385,"nodeType":"Return","src":"34667:20:40"}]},"documentation":{"id":8358,"nodeType":"StructuredDocumentation","src":"34210:165:40","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":8387,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:40","nodeType":"FunctionDefinition","parameters":{"id":8361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8360,"mutability":"mutable","name":"value","nameLocation":"34406:5:40","nodeType":"VariableDeclaration","scope":8387,"src":"34398:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8359,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:40"},"returnParameters":{"id":8364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8387,"src":"34436:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8362,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:40"},"scope":8398,"src":"34380:314:40","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8396,"nodeType":"Block","src":"34853:87:40","statements":[{"AST":{"nativeSrc":"34888:46:40","nodeType":"YulBlock","src":"34888:46:40","statements":[{"nativeSrc":"34902:22:40","nodeType":"YulAssignment","src":"34902:22:40","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34921:1:40","nodeType":"YulIdentifier","src":"34921:1:40"}],"functionName":{"name":"iszero","nativeSrc":"34914:6:40","nodeType":"YulIdentifier","src":"34914:6:40"},"nativeSrc":"34914:9:40","nodeType":"YulFunctionCall","src":"34914:9:40"}],"functionName":{"name":"iszero","nativeSrc":"34907:6:40","nodeType":"YulIdentifier","src":"34907:6:40"},"nativeSrc":"34907:17:40","nodeType":"YulFunctionCall","src":"34907:17:40"},"variableNames":[{"name":"u","nativeSrc":"34902:1:40","nodeType":"YulIdentifier","src":"34902:1:40"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":8390,"isOffset":false,"isSlot":false,"src":"34921:1:40","valueSize":1},{"declaration":8393,"isOffset":false,"isSlot":false,"src":"34902:1:40","valueSize":1}],"flags":["memory-safe"],"id":8395,"nodeType":"InlineAssembly","src":"34863:71:40"}]},"documentation":{"id":8388,"nodeType":"StructuredDocumentation","src":"34700:90:40","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":8397,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:40","nodeType":"FunctionDefinition","parameters":{"id":8391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8390,"mutability":"mutable","name":"b","nameLocation":"34816:1:40","nodeType":"VariableDeclaration","scope":8397,"src":"34811:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8389,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:40"},"returnParameters":{"id":8394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8393,"mutability":"mutable","name":"u","nameLocation":"34850:1:40","nodeType":"VariableDeclaration","scope":8397,"src":"34842:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8392,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:40"},"scope":8398,"src":"34795:145:40","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":8399,"src":"769:34173:40","usedErrors":[6643,6648,6655,6660],"usedEvents":[]}],"src":"192:34751:40"},"id":40},"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol","exportedSymbols":{"Arrays":[4370],"EnumerableSet":[9924],"Math":[6633]},"id":9925,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8400,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"205:24:41"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/Arrays.sol","file":"../Arrays.sol","id":8402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9925,"sourceUnit":4371,"src":"231:37:41","symbolAliases":[{"foreign":{"id":8401,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"239:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/math/Math.sol","file":"../math/Math.sol","id":8404,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9925,"sourceUnit":6634,"src":"269:38:41","symbolAliases":[{"foreign":{"id":8403,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"277:4:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":8405,"nodeType":"StructuredDocumentation","src":"309:1276:41","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n - Set can be cleared (all elements removed) in O(n).\n ```solidity\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n The following types are supported:\n - `bytes32` (`Bytes32Set`) since v3.3.0\n - `address` (`AddressSet`) since v3.3.0\n - `uint256` (`UintSet`) since v3.3.0\n - `string` (`StringSet`) since v5.4.0\n - `bytes` (`BytesSet`) since v5.4.0\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":9924,"linearizedBaseContracts":[9924],"name":"EnumerableSet","nameLocation":"1594:13:41","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":8413,"members":[{"constant":false,"id":8408,"mutability":"mutable","name":"_values","nameLocation":"2118:7:41","nodeType":"VariableDeclaration","scope":8413,"src":"2108:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2108:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8407,"nodeType":"ArrayTypeName","src":"2108:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8412,"mutability":"mutable","name":"_positions","nameLocation":"2310:10:41","nodeType":"VariableDeclaration","scope":8413,"src":"2276:44:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":8411,"keyName":"value","keyNameLocation":"2292:5:41","keyType":{"id":8409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2284:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2276:33:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2301:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"2061:3:41","nodeType":"StructDefinition","scope":9924,"src":"2054:273:41","visibility":"public"},{"body":{"id":8454,"nodeType":"Block","src":"2566:337:41","statements":[{"condition":{"id":8428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2580:22:41","subExpression":{"arguments":[{"id":8425,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"2591:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":8426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"2596:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8424,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8601,"src":"2581:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2581:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8452,"nodeType":"Block","src":"2860:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":8450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2881:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8423,"id":8451,"nodeType":"Return","src":"2874:12:41"}]},"id":8453,"nodeType":"IfStatement","src":"2576:321:41","trueBody":{"id":8449,"nodeType":"Block","src":"2604:250:41","statements":[{"expression":{"arguments":[{"id":8434,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"2635:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8429,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"2618:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"2618:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2630:4:41","memberName":"push","nodeType":"MemberAccess","src":"2618:16:41","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8436,"nodeType":"ExpressionStatement","src":"2618:23:41"},{"expression":{"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8437,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"2776:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2780:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"2776:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8441,"indexExpression":{"id":8439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"2791:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2776:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":8442,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"2800:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2804:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"2800:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2812:6:41","memberName":"length","nodeType":"MemberAccess","src":"2800:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2776:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8446,"nodeType":"ExpressionStatement","src":"2776:42:41"},{"expression":{"hexValue":"74727565","id":8447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2839:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8423,"id":8448,"nodeType":"Return","src":"2832:11:41"}]}}]},"documentation":{"id":8414,"nodeType":"StructuredDocumentation","src":"2333:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8455,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2506:4:41","nodeType":"FunctionDefinition","parameters":{"id":8420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8417,"mutability":"mutable","name":"set","nameLocation":"2523:3:41","nodeType":"VariableDeclaration","scope":8455,"src":"2511:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8416,"nodeType":"UserDefinedTypeName","pathNode":{"id":8415,"name":"Set","nameLocations":["2511:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"2511:3:41"},"referencedDeclaration":8413,"src":"2511:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8419,"mutability":"mutable","name":"value","nameLocation":"2536:5:41","nodeType":"VariableDeclaration","scope":8455,"src":"2528:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2528:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2510:32:41"},"returnParameters":{"id":8423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"2560:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8421,"name":"bool","nodeType":"ElementaryTypeName","src":"2560:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2559:6:41"},"scope":9924,"src":"2497:406:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8538,"nodeType":"Block","src":"3143:1296:41","statements":[{"assignments":[8467],"declarations":[{"constant":false,"id":8467,"mutability":"mutable","name":"position","nameLocation":"3255:8:41","nodeType":"VariableDeclaration","scope":8538,"src":"3247:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8466,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8472,"initialValue":{"baseExpression":{"expression":{"id":8468,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3266:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3270:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"3266:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8471,"indexExpression":{"id":8470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"3281:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3266:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3247:40:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8473,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8467,"src":"3302:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3314:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3302:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8536,"nodeType":"Block","src":"4396:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":8534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4417:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8465,"id":8535,"nodeType":"Return","src":"4410:12:41"}]},"id":8537,"nodeType":"IfStatement","src":"3298:1135:41","trueBody":{"id":8533,"nodeType":"Block","src":"3317:1073:41","statements":[{"assignments":[8477],"declarations":[{"constant":false,"id":8477,"mutability":"mutable","name":"valueIndex","nameLocation":"3677:10:41","nodeType":"VariableDeclaration","scope":8533,"src":"3669:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8476,"name":"uint256","nodeType":"ElementaryTypeName","src":"3669:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8481,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8478,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8467,"src":"3690:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3701:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3690:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3669:33:41"},{"assignments":[8483],"declarations":[{"constant":false,"id":8483,"mutability":"mutable","name":"lastIndex","nameLocation":"3724:9:41","nodeType":"VariableDeclaration","scope":8533,"src":"3716:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8482,"name":"uint256","nodeType":"ElementaryTypeName","src":"3716:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8489,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":8484,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3736:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"3736:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3748:6:41","memberName":"length","nodeType":"MemberAccess","src":"3736:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3757:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3736:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3716:42:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8490,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8477,"src":"3777:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":8491,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8483,"src":"3791:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3777:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8517,"nodeType":"IfStatement","src":"3773:378:41","trueBody":{"id":8516,"nodeType":"Block","src":"3802:349:41","statements":[{"assignments":[8494],"declarations":[{"constant":false,"id":8494,"mutability":"mutable","name":"lastValue","nameLocation":"3828:9:41","nodeType":"VariableDeclaration","scope":8516,"src":"3820:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3820:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8499,"initialValue":{"baseExpression":{"expression":{"id":8495,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3840:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3844:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"3840:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8498,"indexExpression":{"id":8497,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8483,"src":"3852:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3840:22:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3820:42:41"},{"expression":{"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8500,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"3961:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3965:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"3961:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8504,"indexExpression":{"id":8502,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8477,"src":"3973:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3961:23:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8505,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8494,"src":"3987:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3961:35:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8507,"nodeType":"ExpressionStatement","src":"3961:35:41"},{"expression":{"id":8514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8508,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"4100:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4104:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"4100:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8512,"indexExpression":{"id":8510,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8494,"src":"4115:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4100:25:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8513,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8467,"src":"4128:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4100:36:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8515,"nodeType":"ExpressionStatement","src":"4100:36:41"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":8518,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"4229:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4233:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"4229:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4241:3:41","memberName":"pop","nodeType":"MemberAccess","src":"4229:15:41","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8524,"nodeType":"ExpressionStatement","src":"4229:17:41"},{"expression":{"id":8529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4325:28:41","subExpression":{"baseExpression":{"expression":{"id":8525,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8459,"src":"4332:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4336:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"4332:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8528,"indexExpression":{"id":8527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"4347:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4332:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8530,"nodeType":"ExpressionStatement","src":"4325:28:41"},{"expression":{"hexValue":"74727565","id":8531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4375:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8465,"id":8532,"nodeType":"Return","src":"4368:11:41"}]}}]},"documentation":{"id":8456,"nodeType":"StructuredDocumentation","src":"2909:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8539,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"3080:7:41","nodeType":"FunctionDefinition","parameters":{"id":8462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8459,"mutability":"mutable","name":"set","nameLocation":"3100:3:41","nodeType":"VariableDeclaration","scope":8539,"src":"3088:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8458,"nodeType":"UserDefinedTypeName","pathNode":{"id":8457,"name":"Set","nameLocations":["3088:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"3088:3:41"},"referencedDeclaration":8413,"src":"3088:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8461,"mutability":"mutable","name":"value","nameLocation":"3113:5:41","nodeType":"VariableDeclaration","scope":8539,"src":"3105:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3105:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3087:32:41"},"returnParameters":{"id":8465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8539,"src":"3137:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8463,"name":"bool","nodeType":"ElementaryTypeName","src":"3137:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3136:6:41"},"scope":9924,"src":"3071:1368:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8581,"nodeType":"Block","src":"4824:196:41","statements":[{"assignments":[8547],"declarations":[{"constant":false,"id":8547,"mutability":"mutable","name":"len","nameLocation":"4842:3:41","nodeType":"VariableDeclaration","scope":8581,"src":"4834:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8546,"name":"uint256","nodeType":"ElementaryTypeName","src":"4834:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8551,"initialValue":{"arguments":[{"id":8549,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"4856:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}],"id":8548,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"4848:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4848:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4834:26:41"},{"body":{"id":8571,"nodeType":"Block","src":"4904:62:41","statements":[{"expression":{"id":8569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4918:37:41","subExpression":{"baseExpression":{"expression":{"id":8562,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"4925:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4929:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"4925:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8568,"indexExpression":{"baseExpression":{"expression":{"id":8564,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"4940:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4944:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"4940:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8567,"indexExpression":{"id":8566,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"4952:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4940:14:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4925:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8570,"nodeType":"ExpressionStatement","src":"4918:37:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8556,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"4890:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8557,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8547,"src":"4894:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4890:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8572,"initializationExpression":{"assignments":[8553],"declarations":[{"constant":false,"id":8553,"mutability":"mutable","name":"i","nameLocation":"4883:1:41","nodeType":"VariableDeclaration","scope":8572,"src":"4875:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8552,"name":"uint256","nodeType":"ElementaryTypeName","src":"4875:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8555,"initialValue":{"hexValue":"30","id":8554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4887:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4875:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4899:3:41","subExpression":{"id":8559,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"4901:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8561,"nodeType":"ExpressionStatement","src":"4899:3:41"},"nodeType":"ForStatement","src":"4870:96:41"},{"expression":{"arguments":[{"expression":{"id":8576,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"4998:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5002:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"4998:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"hexValue":"30","id":8578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5011:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":8573,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"4975:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":8575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4982:15:41","memberName":"unsafeSetLength","nodeType":"MemberAccess","referencedDeclaration":4336,"src":"4975:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes32[] storage pointer,uint256)"}},"id":8579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4975:38:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8580,"nodeType":"ExpressionStatement","src":"4975:38:41"}]},"documentation":{"id":8540,"nodeType":"StructuredDocumentation","src":"4445:333:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: This function has an unbounded cost that scales with set size. Developers should keep in mind that\n using it may render the function uncallable if the set grows to the point where clearing it consumes too much\n gas to fit in a block."},"id":8582,"implemented":true,"kind":"function","modifiers":[],"name":"_clear","nameLocation":"4792:6:41","nodeType":"FunctionDefinition","parameters":{"id":8544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8543,"mutability":"mutable","name":"set","nameLocation":"4811:3:41","nodeType":"VariableDeclaration","scope":8582,"src":"4799:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8542,"nodeType":"UserDefinedTypeName","pathNode":{"id":8541,"name":"Set","nameLocations":["4799:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"4799:3:41"},"referencedDeclaration":8413,"src":"4799:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4798:17:41"},"returnParameters":{"id":8545,"nodeType":"ParameterList","parameters":[],"src":"4824:0:41"},"scope":9924,"src":"4783:237:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8600,"nodeType":"Block","src":"5180:50:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":8593,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"5197:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5201:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":8412,"src":"5197:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8596,"indexExpression":{"id":8595,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"5212:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5197:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5222:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5197:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8592,"id":8599,"nodeType":"Return","src":"5190:33:41"}]},"documentation":{"id":8583,"nodeType":"StructuredDocumentation","src":"5026:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":8601,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"5110:9:41","nodeType":"FunctionDefinition","parameters":{"id":8589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8586,"mutability":"mutable","name":"set","nameLocation":"5132:3:41","nodeType":"VariableDeclaration","scope":8601,"src":"5120:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8585,"nodeType":"UserDefinedTypeName","pathNode":{"id":8584,"name":"Set","nameLocations":["5120:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"5120:3:41"},"referencedDeclaration":8413,"src":"5120:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8588,"mutability":"mutable","name":"value","nameLocation":"5145:5:41","nodeType":"VariableDeclaration","scope":8601,"src":"5137:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5119:32:41"},"returnParameters":{"id":8592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8601,"src":"5174:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8590,"name":"bool","nodeType":"ElementaryTypeName","src":"5174:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5173:6:41"},"scope":9924,"src":"5101:129:41","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8614,"nodeType":"Block","src":"5376:42:41","statements":[{"expression":{"expression":{"expression":{"id":8610,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8605,"src":"5393:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5397:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"5393:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5405:6:41","memberName":"length","nodeType":"MemberAccess","src":"5393:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8609,"id":8613,"nodeType":"Return","src":"5386:25:41"}]},"documentation":{"id":8602,"nodeType":"StructuredDocumentation","src":"5236:70:41","text":" @dev Returns the number of values on the set. O(1)."},"id":8615,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"5320:7:41","nodeType":"FunctionDefinition","parameters":{"id":8606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8605,"mutability":"mutable","name":"set","nameLocation":"5340:3:41","nodeType":"VariableDeclaration","scope":8615,"src":"5328:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8604,"nodeType":"UserDefinedTypeName","pathNode":{"id":8603,"name":"Set","nameLocations":["5328:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"5328:3:41"},"referencedDeclaration":8413,"src":"5328:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5327:17:41"},"returnParameters":{"id":8609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8615,"src":"5367:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8607,"name":"uint256","nodeType":"ElementaryTypeName","src":"5367:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5366:9:41"},"scope":9924,"src":"5311:107:41","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8631,"nodeType":"Block","src":"5836:42:41","statements":[{"expression":{"baseExpression":{"expression":{"id":8626,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"5853:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5857:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"5853:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8629,"indexExpression":{"id":8628,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8621,"src":"5865:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5853:18:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8625,"id":8630,"nodeType":"Return","src":"5846:25:41"}]},"documentation":{"id":8616,"nodeType":"StructuredDocumentation","src":"5424:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8632,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"5769:3:41","nodeType":"FunctionDefinition","parameters":{"id":8622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8619,"mutability":"mutable","name":"set","nameLocation":"5785:3:41","nodeType":"VariableDeclaration","scope":8632,"src":"5773:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8618,"nodeType":"UserDefinedTypeName","pathNode":{"id":8617,"name":"Set","nameLocations":["5773:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"5773:3:41"},"referencedDeclaration":8413,"src":"5773:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8621,"mutability":"mutable","name":"index","nameLocation":"5798:5:41","nodeType":"VariableDeclaration","scope":8632,"src":"5790:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8620,"name":"uint256","nodeType":"ElementaryTypeName","src":"5790:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5772:32:41"},"returnParameters":{"id":8625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8632,"src":"5827:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5827:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5826:9:41"},"scope":9924,"src":"5760:118:41","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8645,"nodeType":"Block","src":"6492:35:41","statements":[{"expression":{"expression":{"id":8642,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8636,"src":"6509:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6513:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"6509:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":8641,"id":8644,"nodeType":"Return","src":"6502:18:41"}]},"documentation":{"id":8633,"nodeType":"StructuredDocumentation","src":"5884:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8646,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"6427:7:41","nodeType":"FunctionDefinition","parameters":{"id":8637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8636,"mutability":"mutable","name":"set","nameLocation":"6447:3:41","nodeType":"VariableDeclaration","scope":8646,"src":"6435:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8635,"nodeType":"UserDefinedTypeName","pathNode":{"id":8634,"name":"Set","nameLocations":["6435:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"6435:3:41"},"referencedDeclaration":8413,"src":"6435:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"6434:17:41"},"returnParameters":{"id":8641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8646,"src":"6474:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6474:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8639,"nodeType":"ArrayTypeName","src":"6474:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6473:18:41"},"scope":9924,"src":"6418:109:41","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8724,"nodeType":"Block","src":"7173:392:41","statements":[{"id":8723,"nodeType":"UncheckedBlock","src":"7183:376:41","statements":[{"expression":{"id":8668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8660,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"7207:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8663,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"7222:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":8665,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8650,"src":"7235:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}],"id":8664,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"7227:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7227:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8661,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"7213:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":8662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7218:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"7213:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7213:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7207:33:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8669,"nodeType":"ExpressionStatement","src":"7207:33:41"},{"expression":{"id":8676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8670,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"7254:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8673,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"7271:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8674,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"7278:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8671,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"7262:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":8672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7267:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"7262:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7254:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8677,"nodeType":"ExpressionStatement","src":"7254:28:41"},{"assignments":[8679],"declarations":[{"constant":false,"id":8679,"mutability":"mutable","name":"len","nameLocation":"7305:3:41","nodeType":"VariableDeclaration","scope":8723,"src":"7297:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8678,"name":"uint256","nodeType":"ElementaryTypeName","src":"7297:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8683,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8680,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"7311:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8681,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"7317:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7311:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7297:25:41"},{"assignments":[8688],"declarations":[{"constant":false,"id":8688,"mutability":"mutable","name":"result","nameLocation":"7353:6:41","nodeType":"VariableDeclaration","scope":8723,"src":"7336:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7336:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8687,"nodeType":"ArrayTypeName","src":"7336:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8694,"initialValue":{"arguments":[{"id":8692,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8679,"src":"7376:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7362:13:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":8689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7366:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8690,"nodeType":"ArrayTypeName","src":"7366:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7362:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7336:44:41"},{"body":{"id":8719,"nodeType":"Block","src":"7428:94:41","statements":[{"expression":{"id":8717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8705,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8688,"src":"7446:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8707,"indexExpression":{"id":8706,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"7453:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7446:9:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"expression":{"id":8710,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8650,"src":"7478:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":8711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7482:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":8408,"src":"7478:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8712,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"7491:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"7499:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7491:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8708,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"7458:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":8709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7465:12:41","memberName":"unsafeAccess","nodeType":"MemberAccess","referencedDeclaration":4171,"src":"7458:19:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Bytes32Slot_$4665_storage_ptr_$","typeString":"function (bytes32[] storage pointer,uint256) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":8715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7458:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$4665_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":8716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7502:5:41","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4664,"src":"7458:49:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7446:61:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8718,"nodeType":"ExpressionStatement","src":"7446:61:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8699,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"7414:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8700,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8679,"src":"7418:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7414:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8720,"initializationExpression":{"assignments":[8696],"declarations":[{"constant":false,"id":8696,"mutability":"mutable","name":"i","nameLocation":"7407:1:41","nodeType":"VariableDeclaration","scope":8720,"src":"7399:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8695,"name":"uint256","nodeType":"ElementaryTypeName","src":"7399:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8698,"initialValue":{"hexValue":"30","id":8697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7411:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7399:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7423:3:41","subExpression":{"id":8702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"7425:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8704,"nodeType":"ExpressionStatement","src":"7423:3:41"},"nodeType":"ForStatement","src":"7394:128:41"},{"expression":{"id":8721,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8688,"src":"7542:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":8659,"id":8722,"nodeType":"Return","src":"7535:13:41"}]}]},"documentation":{"id":8647,"nodeType":"StructuredDocumentation","src":"6533:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8725,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"7080:7:41","nodeType":"FunctionDefinition","parameters":{"id":8655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8650,"mutability":"mutable","name":"set","nameLocation":"7100:3:41","nodeType":"VariableDeclaration","scope":8725,"src":"7088:15:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8649,"nodeType":"UserDefinedTypeName","pathNode":{"id":8648,"name":"Set","nameLocations":["7088:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"7088:3:41"},"referencedDeclaration":8413,"src":"7088:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":8652,"mutability":"mutable","name":"start","nameLocation":"7113:5:41","nodeType":"VariableDeclaration","scope":8725,"src":"7105:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8651,"name":"uint256","nodeType":"ElementaryTypeName","src":"7105:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8654,"mutability":"mutable","name":"end","nameLocation":"7128:3:41","nodeType":"VariableDeclaration","scope":8725,"src":"7120:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8653,"name":"uint256","nodeType":"ElementaryTypeName","src":"7120:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7087:45:41"},"returnParameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8725,"src":"7155:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7155:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8657,"nodeType":"ArrayTypeName","src":"7155:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7154:18:41"},"scope":9924,"src":"7071:494:41","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":8729,"members":[{"constant":false,"id":8728,"mutability":"mutable","name":"_inner","nameLocation":"7622:6:41","nodeType":"VariableDeclaration","scope":8729,"src":"7618:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8727,"nodeType":"UserDefinedTypeName","pathNode":{"id":8726,"name":"Set","nameLocations":["7618:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"7618:3:41"},"referencedDeclaration":8413,"src":"7618:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"7597:10:41","nodeType":"StructDefinition","scope":9924,"src":"7590:45:41","visibility":"public"},{"body":{"id":8746,"nodeType":"Block","src":"7881:47:41","statements":[{"expression":{"arguments":[{"expression":{"id":8741,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"7903:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7907:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"7903:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8743,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"7915:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8740,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"7898:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8739,"id":8745,"nodeType":"Return","src":"7891:30:41"}]},"documentation":{"id":8730,"nodeType":"StructuredDocumentation","src":"7641:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8747,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"7814:3:41","nodeType":"FunctionDefinition","parameters":{"id":8736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"set","nameLocation":"7837:3:41","nodeType":"VariableDeclaration","scope":8747,"src":"7818:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8732,"nodeType":"UserDefinedTypeName","pathNode":{"id":8731,"name":"Bytes32Set","nameLocations":["7818:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"7818:10:41"},"referencedDeclaration":8729,"src":"7818:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8735,"mutability":"mutable","name":"value","nameLocation":"7850:5:41","nodeType":"VariableDeclaration","scope":8747,"src":"7842:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7842:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7817:39:41"},"returnParameters":{"id":8739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8747,"src":"7875:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8737,"name":"bool","nodeType":"ElementaryTypeName","src":"7875:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7874:6:41"},"scope":9924,"src":"7805:123:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8764,"nodeType":"Block","src":"8175:50:41","statements":[{"expression":{"arguments":[{"expression":{"id":8759,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8751,"src":"8200:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8204:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"8200:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8753,"src":"8212:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8758,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"8192:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8757,"id":8763,"nodeType":"Return","src":"8185:33:41"}]},"documentation":{"id":8748,"nodeType":"StructuredDocumentation","src":"7934:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8765,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8105:6:41","nodeType":"FunctionDefinition","parameters":{"id":8754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"set","nameLocation":"8131:3:41","nodeType":"VariableDeclaration","scope":8765,"src":"8112:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8750,"nodeType":"UserDefinedTypeName","pathNode":{"id":8749,"name":"Bytes32Set","nameLocations":["8112:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"8112:10:41"},"referencedDeclaration":8729,"src":"8112:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8753,"mutability":"mutable","name":"value","nameLocation":"8144:5:41","nodeType":"VariableDeclaration","scope":8765,"src":"8136:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8136:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8111:39:41"},"returnParameters":{"id":8757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8765,"src":"8169:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8755,"name":"bool","nodeType":"ElementaryTypeName","src":"8169:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8168:6:41"},"scope":9924,"src":"8096:129:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8777,"nodeType":"Block","src":"8587:35:41","statements":[{"expression":{"arguments":[{"expression":{"id":8773,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8769,"src":"8604:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8608:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"8604:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8772,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"8597:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$returns$__$","typeString":"function (struct EnumerableSet.Set storage pointer)"}},"id":8775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8597:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8776,"nodeType":"ExpressionStatement","src":"8597:18:41"}]},"documentation":{"id":8766,"nodeType":"StructuredDocumentation","src":"8231:303:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."},"id":8778,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"8548:5:41","nodeType":"FunctionDefinition","parameters":{"id":8770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8769,"mutability":"mutable","name":"set","nameLocation":"8573:3:41","nodeType":"VariableDeclaration","scope":8778,"src":"8554:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8768,"nodeType":"UserDefinedTypeName","pathNode":{"id":8767,"name":"Bytes32Set","nameLocations":["8554:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"8554:10:41"},"referencedDeclaration":8729,"src":"8554:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"8553:24:41"},"returnParameters":{"id":8771,"nodeType":"ParameterList","parameters":[],"src":"8587:0:41"},"scope":9924,"src":"8539:83:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8795,"nodeType":"Block","src":"8789:52:41","statements":[{"expression":{"arguments":[{"expression":{"id":8790,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8782,"src":"8816:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8820:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"8816:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8792,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8784,"src":"8828:5:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8789,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8601,"src":"8806:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8806:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8788,"id":8794,"nodeType":"Return","src":"8799:35:41"}]},"documentation":{"id":8779,"nodeType":"StructuredDocumentation","src":"8628:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":8796,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8712:8:41","nodeType":"FunctionDefinition","parameters":{"id":8785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8782,"mutability":"mutable","name":"set","nameLocation":"8740:3:41","nodeType":"VariableDeclaration","scope":8796,"src":"8721:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8781,"nodeType":"UserDefinedTypeName","pathNode":{"id":8780,"name":"Bytes32Set","nameLocations":["8721:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"8721:10:41"},"referencedDeclaration":8729,"src":"8721:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8784,"mutability":"mutable","name":"value","nameLocation":"8753:5:41","nodeType":"VariableDeclaration","scope":8796,"src":"8745:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8745:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8720:39:41"},"returnParameters":{"id":8788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8796,"src":"8783:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8786,"name":"bool","nodeType":"ElementaryTypeName","src":"8783:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8782:6:41"},"scope":9924,"src":"8703:138:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8810,"nodeType":"Block","src":"8994:43:41","statements":[{"expression":{"arguments":[{"expression":{"id":8806,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"9019:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9023:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"9019:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8805,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"9011:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9011:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8804,"id":8809,"nodeType":"Return","src":"9004:26:41"}]},"documentation":{"id":8797,"nodeType":"StructuredDocumentation","src":"8847:70:41","text":" @dev Returns the number of values in the set. O(1)."},"id":8811,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8931:6:41","nodeType":"FunctionDefinition","parameters":{"id":8801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8800,"mutability":"mutable","name":"set","nameLocation":"8957:3:41","nodeType":"VariableDeclaration","scope":8811,"src":"8938:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8799,"nodeType":"UserDefinedTypeName","pathNode":{"id":8798,"name":"Bytes32Set","nameLocations":["8938:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"8938:10:41"},"referencedDeclaration":8729,"src":"8938:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"8937:24:41"},"returnParameters":{"id":8804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8811,"src":"8985:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8802,"name":"uint256","nodeType":"ElementaryTypeName","src":"8985:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8984:9:41"},"scope":9924,"src":"8922:115:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8828,"nodeType":"Block","src":"9462:46:41","statements":[{"expression":{"arguments":[{"expression":{"id":8823,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8815,"src":"9483:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9487:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"9483:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8825,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8817,"src":"9495:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8822,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8632,"src":"9479:3:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":8826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9479:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8821,"id":8827,"nodeType":"Return","src":"9472:29:41"}]},"documentation":{"id":8812,"nodeType":"StructuredDocumentation","src":"9043:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":8829,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9388:2:41","nodeType":"FunctionDefinition","parameters":{"id":8818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8815,"mutability":"mutable","name":"set","nameLocation":"9410:3:41","nodeType":"VariableDeclaration","scope":8829,"src":"9391:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8814,"nodeType":"UserDefinedTypeName","pathNode":{"id":8813,"name":"Bytes32Set","nameLocations":["9391:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"9391:10:41"},"referencedDeclaration":8729,"src":"9391:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8817,"mutability":"mutable","name":"index","nameLocation":"9423:5:41","nodeType":"VariableDeclaration","scope":8829,"src":"9415:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8816,"name":"uint256","nodeType":"ElementaryTypeName","src":"9415:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9390:39:41"},"returnParameters":{"id":8821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8829,"src":"9453:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9453:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9452:9:41"},"scope":9924,"src":"9379:129:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8858,"nodeType":"Block","src":"10129:192:41","statements":[{"assignments":[8843],"declarations":[{"constant":false,"id":8843,"mutability":"mutable","name":"store","nameLocation":"10156:5:41","nodeType":"VariableDeclaration","scope":8858,"src":"10139:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10139:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8842,"nodeType":"ArrayTypeName","src":"10139:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8848,"initialValue":{"arguments":[{"expression":{"id":8845,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8833,"src":"10172:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10176:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"10172:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8844,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8646,"src":"10164:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":8847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10164:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10139:44:41"},{"assignments":[8853],"declarations":[{"constant":false,"id":8853,"mutability":"mutable","name":"result","nameLocation":"10210:6:41","nodeType":"VariableDeclaration","scope":8858,"src":"10193:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10193:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8852,"nodeType":"ArrayTypeName","src":"10193:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8854,"nodeType":"VariableDeclarationStatement","src":"10193:23:41"},{"AST":{"nativeSrc":"10252:39:41","nodeType":"YulBlock","src":"10252:39:41","statements":[{"nativeSrc":"10266:15:41","nodeType":"YulAssignment","src":"10266:15:41","value":{"name":"store","nativeSrc":"10276:5:41","nodeType":"YulIdentifier","src":"10276:5:41"},"variableNames":[{"name":"result","nativeSrc":"10266:6:41","nodeType":"YulIdentifier","src":"10266:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":8853,"isOffset":false,"isSlot":false,"src":"10266:6:41","valueSize":1},{"declaration":8843,"isOffset":false,"isSlot":false,"src":"10276:5:41","valueSize":1}],"flags":["memory-safe"],"id":8855,"nodeType":"InlineAssembly","src":"10227:64:41"},{"expression":{"id":8856,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8853,"src":"10308:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":8838,"id":8857,"nodeType":"Return","src":"10301:13:41"}]},"documentation":{"id":8830,"nodeType":"StructuredDocumentation","src":"9514:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8859,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10057:6:41","nodeType":"FunctionDefinition","parameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8833,"mutability":"mutable","name":"set","nameLocation":"10083:3:41","nodeType":"VariableDeclaration","scope":8859,"src":"10064:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8832,"nodeType":"UserDefinedTypeName","pathNode":{"id":8831,"name":"Bytes32Set","nameLocations":["10064:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"10064:10:41"},"referencedDeclaration":8729,"src":"10064:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"10063:24:41"},"returnParameters":{"id":8838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8859,"src":"10111:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10111:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8836,"nodeType":"ArrayTypeName","src":"10111:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"10110:18:41"},"scope":9924,"src":"10048:273:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":8894,"nodeType":"Block","src":"10974:204:41","statements":[{"assignments":[8877],"declarations":[{"constant":false,"id":8877,"mutability":"mutable","name":"store","nameLocation":"11001:5:41","nodeType":"VariableDeclaration","scope":8894,"src":"10984:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10984:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8876,"nodeType":"ArrayTypeName","src":"10984:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8884,"initialValue":{"arguments":[{"expression":{"id":8879,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"11017:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":8880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11021:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8728,"src":"11017:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":8881,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"11029:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8882,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8867,"src":"11036:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8878,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8725,"src":"11009:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256,uint256) view returns (bytes32[] memory)"}},"id":8883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11009:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10984:56:41"},{"assignments":[8889],"declarations":[{"constant":false,"id":8889,"mutability":"mutable","name":"result","nameLocation":"11067:6:41","nodeType":"VariableDeclaration","scope":8894,"src":"11050:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11050:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8888,"nodeType":"ArrayTypeName","src":"11050:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":8890,"nodeType":"VariableDeclarationStatement","src":"11050:23:41"},{"AST":{"nativeSrc":"11109:39:41","nodeType":"YulBlock","src":"11109:39:41","statements":[{"nativeSrc":"11123:15:41","nodeType":"YulAssignment","src":"11123:15:41","value":{"name":"store","nativeSrc":"11133:5:41","nodeType":"YulIdentifier","src":"11133:5:41"},"variableNames":[{"name":"result","nativeSrc":"11123:6:41","nodeType":"YulIdentifier","src":"11123:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":8889,"isOffset":false,"isSlot":false,"src":"11123:6:41","valueSize":1},{"declaration":8877,"isOffset":false,"isSlot":false,"src":"11133:5:41","valueSize":1}],"flags":["memory-safe"],"id":8891,"nodeType":"InlineAssembly","src":"11084:64:41"},{"expression":{"id":8892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8889,"src":"11165:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":8872,"id":8893,"nodeType":"Return","src":"11158:13:41"}]},"documentation":{"id":8860,"nodeType":"StructuredDocumentation","src":"10327:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":8895,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10874:6:41","nodeType":"FunctionDefinition","parameters":{"id":8868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8863,"mutability":"mutable","name":"set","nameLocation":"10900:3:41","nodeType":"VariableDeclaration","scope":8895,"src":"10881:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":8862,"nodeType":"UserDefinedTypeName","pathNode":{"id":8861,"name":"Bytes32Set","nameLocations":["10881:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"10881:10:41"},"referencedDeclaration":8729,"src":"10881:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":8865,"mutability":"mutable","name":"start","nameLocation":"10913:5:41","nodeType":"VariableDeclaration","scope":8895,"src":"10905:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8864,"name":"uint256","nodeType":"ElementaryTypeName","src":"10905:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8867,"mutability":"mutable","name":"end","nameLocation":"10928:3:41","nodeType":"VariableDeclaration","scope":8895,"src":"10920:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8866,"name":"uint256","nodeType":"ElementaryTypeName","src":"10920:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10880:52:41"},"returnParameters":{"id":8872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8895,"src":"10956:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10956:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8870,"nodeType":"ArrayTypeName","src":"10956:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"10955:18:41"},"scope":9924,"src":"10865:313:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":8899,"members":[{"constant":false,"id":8898,"mutability":"mutable","name":"_inner","nameLocation":"11235:6:41","nodeType":"VariableDeclaration","scope":8899,"src":"11231:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":8897,"nodeType":"UserDefinedTypeName","pathNode":{"id":8896,"name":"Set","nameLocations":["11231:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"11231:3:41"},"referencedDeclaration":8413,"src":"11231:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"11210:10:41","nodeType":"StructDefinition","scope":9924,"src":"11203:45:41","visibility":"public"},{"body":{"id":8925,"nodeType":"Block","src":"11494:74:41","statements":[{"expression":{"arguments":[{"expression":{"id":8911,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8903,"src":"11516:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11520:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"11516:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8919,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"11552:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11544:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8917,"name":"uint160","nodeType":"ElementaryTypeName","src":"11544:7:41","typeDescriptions":{}}},"id":8920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11544:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11536:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8915,"name":"uint256","nodeType":"ElementaryTypeName","src":"11536:7:41","typeDescriptions":{}}},"id":8921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11536:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11528:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11528:7:41","typeDescriptions":{}}},"id":8922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11528:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8910,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"11511:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11511:50:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8909,"id":8924,"nodeType":"Return","src":"11504:57:41"}]},"documentation":{"id":8900,"nodeType":"StructuredDocumentation","src":"11254:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":8926,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"11427:3:41","nodeType":"FunctionDefinition","parameters":{"id":8906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8903,"mutability":"mutable","name":"set","nameLocation":"11450:3:41","nodeType":"VariableDeclaration","scope":8926,"src":"11431:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8902,"nodeType":"UserDefinedTypeName","pathNode":{"id":8901,"name":"AddressSet","nameLocations":["11431:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"11431:10:41"},"referencedDeclaration":8899,"src":"11431:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8905,"mutability":"mutable","name":"value","nameLocation":"11463:5:41","nodeType":"VariableDeclaration","scope":8926,"src":"11455:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8904,"name":"address","nodeType":"ElementaryTypeName","src":"11455:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:39:41"},"returnParameters":{"id":8909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8926,"src":"11488:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8907,"name":"bool","nodeType":"ElementaryTypeName","src":"11488:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11487:6:41"},"scope":9924,"src":"11418:150:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8952,"nodeType":"Block","src":"11815:77:41","statements":[{"expression":{"arguments":[{"expression":{"id":8938,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8930,"src":"11840:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11844:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"11840:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"11876:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11868:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8944,"name":"uint160","nodeType":"ElementaryTypeName","src":"11868:7:41","typeDescriptions":{}}},"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11868:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11860:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8942,"name":"uint256","nodeType":"ElementaryTypeName","src":"11860:7:41","typeDescriptions":{}}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11860:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11852:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11852:7:41","typeDescriptions":{}}},"id":8949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11852:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8937,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"11832:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":8950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11832:53:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8936,"id":8951,"nodeType":"Return","src":"11825:60:41"}]},"documentation":{"id":8927,"nodeType":"StructuredDocumentation","src":"11574:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":8953,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11745:6:41","nodeType":"FunctionDefinition","parameters":{"id":8933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8930,"mutability":"mutable","name":"set","nameLocation":"11771:3:41","nodeType":"VariableDeclaration","scope":8953,"src":"11752:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8929,"nodeType":"UserDefinedTypeName","pathNode":{"id":8928,"name":"AddressSet","nameLocations":["11752:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"11752:10:41"},"referencedDeclaration":8899,"src":"11752:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8932,"mutability":"mutable","name":"value","nameLocation":"11784:5:41","nodeType":"VariableDeclaration","scope":8953,"src":"11776:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8931,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11751:39:41"},"returnParameters":{"id":8936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8953,"src":"11809:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8934,"name":"bool","nodeType":"ElementaryTypeName","src":"11809:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11808:6:41"},"scope":9924,"src":"11736:156:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8965,"nodeType":"Block","src":"12254:35:41","statements":[{"expression":{"arguments":[{"expression":{"id":8961,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8957,"src":"12271:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12275:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"12271:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":8960,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"12264:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$returns$__$","typeString":"function (struct EnumerableSet.Set storage pointer)"}},"id":8963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12264:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8964,"nodeType":"ExpressionStatement","src":"12264:18:41"}]},"documentation":{"id":8954,"nodeType":"StructuredDocumentation","src":"11898:303:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."},"id":8966,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"12215:5:41","nodeType":"FunctionDefinition","parameters":{"id":8958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8957,"mutability":"mutable","name":"set","nameLocation":"12240:3:41","nodeType":"VariableDeclaration","scope":8966,"src":"12221:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8956,"nodeType":"UserDefinedTypeName","pathNode":{"id":8955,"name":"AddressSet","nameLocations":["12221:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"12221:10:41"},"referencedDeclaration":8899,"src":"12221:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"12220:24:41"},"returnParameters":{"id":8959,"nodeType":"ParameterList","parameters":[],"src":"12254:0:41"},"scope":9924,"src":"12206:83:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8992,"nodeType":"Block","src":"12456:79:41","statements":[{"expression":{"arguments":[{"expression":{"id":8978,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8970,"src":"12483:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":8979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12487:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"12483:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":8986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8972,"src":"12519:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12511:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8984,"name":"uint160","nodeType":"ElementaryTypeName","src":"12511:7:41","typeDescriptions":{}}},"id":8987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12511:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12503:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8982,"name":"uint256","nodeType":"ElementaryTypeName","src":"12503:7:41","typeDescriptions":{}}},"id":8988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12503:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12495:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12495:7:41","typeDescriptions":{}}},"id":8989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12495:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8977,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8601,"src":"12473:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":8990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12473:55:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8976,"id":8991,"nodeType":"Return","src":"12466:62:41"}]},"documentation":{"id":8967,"nodeType":"StructuredDocumentation","src":"12295:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":8993,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"12379:8:41","nodeType":"FunctionDefinition","parameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8970,"mutability":"mutable","name":"set","nameLocation":"12407:3:41","nodeType":"VariableDeclaration","scope":8993,"src":"12388:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8969,"nodeType":"UserDefinedTypeName","pathNode":{"id":8968,"name":"AddressSet","nameLocations":["12388:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"12388:10:41"},"referencedDeclaration":8899,"src":"12388:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":8972,"mutability":"mutable","name":"value","nameLocation":"12420:5:41","nodeType":"VariableDeclaration","scope":8993,"src":"12412:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8971,"name":"address","nodeType":"ElementaryTypeName","src":"12412:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12387:39:41"},"returnParameters":{"id":8976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8993,"src":"12450:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8974,"name":"bool","nodeType":"ElementaryTypeName","src":"12450:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12449:6:41"},"scope":9924,"src":"12370:165:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9007,"nodeType":"Block","src":"12688:43:41","statements":[{"expression":{"arguments":[{"expression":{"id":9003,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"12713:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":9004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12717:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"12713:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":9002,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"12705:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":9005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12705:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9001,"id":9006,"nodeType":"Return","src":"12698:26:41"}]},"documentation":{"id":8994,"nodeType":"StructuredDocumentation","src":"12541:70:41","text":" @dev Returns the number of values in the set. O(1)."},"id":9008,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"12625:6:41","nodeType":"FunctionDefinition","parameters":{"id":8998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"set","nameLocation":"12651:3:41","nodeType":"VariableDeclaration","scope":9008,"src":"12632:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":8996,"nodeType":"UserDefinedTypeName","pathNode":{"id":8995,"name":"AddressSet","nameLocations":["12632:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"12632:10:41"},"referencedDeclaration":8899,"src":"12632:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"12631:24:41"},"returnParameters":{"id":9001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9008,"src":"12679:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8999,"name":"uint256","nodeType":"ElementaryTypeName","src":"12679:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12678:9:41"},"scope":9924,"src":"12616:115:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9034,"nodeType":"Block","src":"13156:73:41","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":9026,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9012,"src":"13201:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":9027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"13201:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":9028,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9014,"src":"13213:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9025,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8632,"src":"13197:3:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":9029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13197:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13189:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9023,"name":"uint256","nodeType":"ElementaryTypeName","src":"13189:7:41","typeDescriptions":{}}},"id":9030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13189:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13181:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9021,"name":"uint160","nodeType":"ElementaryTypeName","src":"13181:7:41","typeDescriptions":{}}},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13181:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13173:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"13173:7:41","typeDescriptions":{}}},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13173:49:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9018,"id":9033,"nodeType":"Return","src":"13166:56:41"}]},"documentation":{"id":9009,"nodeType":"StructuredDocumentation","src":"12737:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":9035,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"13082:2:41","nodeType":"FunctionDefinition","parameters":{"id":9015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9012,"mutability":"mutable","name":"set","nameLocation":"13104:3:41","nodeType":"VariableDeclaration","scope":9035,"src":"13085:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":9011,"nodeType":"UserDefinedTypeName","pathNode":{"id":9010,"name":"AddressSet","nameLocations":["13085:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"13085:10:41"},"referencedDeclaration":8899,"src":"13085:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":9014,"mutability":"mutable","name":"index","nameLocation":"13117:5:41","nodeType":"VariableDeclaration","scope":9035,"src":"13109:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9013,"name":"uint256","nodeType":"ElementaryTypeName","src":"13109:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13084:39:41"},"returnParameters":{"id":9018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9035,"src":"13147:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9016,"name":"address","nodeType":"ElementaryTypeName","src":"13147:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13146:9:41"},"scope":9924,"src":"13073:156:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9064,"nodeType":"Block","src":"13850:192:41","statements":[{"assignments":[9049],"declarations":[{"constant":false,"id":9049,"mutability":"mutable","name":"store","nameLocation":"13877:5:41","nodeType":"VariableDeclaration","scope":9064,"src":"13860:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13860:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9048,"nodeType":"ArrayTypeName","src":"13860:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9054,"initialValue":{"arguments":[{"expression":{"id":9051,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9039,"src":"13893:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":9052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13897:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"13893:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":9050,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8646,"src":"13885:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":9053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13885:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"13860:44:41"},{"assignments":[9059],"declarations":[{"constant":false,"id":9059,"mutability":"mutable","name":"result","nameLocation":"13931:6:41","nodeType":"VariableDeclaration","scope":9064,"src":"13914:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9057,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9058,"nodeType":"ArrayTypeName","src":"13914:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":9060,"nodeType":"VariableDeclarationStatement","src":"13914:23:41"},{"AST":{"nativeSrc":"13973:39:41","nodeType":"YulBlock","src":"13973:39:41","statements":[{"nativeSrc":"13987:15:41","nodeType":"YulAssignment","src":"13987:15:41","value":{"name":"store","nativeSrc":"13997:5:41","nodeType":"YulIdentifier","src":"13997:5:41"},"variableNames":[{"name":"result","nativeSrc":"13987:6:41","nodeType":"YulIdentifier","src":"13987:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":9059,"isOffset":false,"isSlot":false,"src":"13987:6:41","valueSize":1},{"declaration":9049,"isOffset":false,"isSlot":false,"src":"13997:5:41","valueSize":1}],"flags":["memory-safe"],"id":9061,"nodeType":"InlineAssembly","src":"13948:64:41"},{"expression":{"id":9062,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"14029:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":9044,"id":9063,"nodeType":"Return","src":"14022:13:41"}]},"documentation":{"id":9036,"nodeType":"StructuredDocumentation","src":"13235:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9065,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"13778:6:41","nodeType":"FunctionDefinition","parameters":{"id":9040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9039,"mutability":"mutable","name":"set","nameLocation":"13804:3:41","nodeType":"VariableDeclaration","scope":9065,"src":"13785:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":9038,"nodeType":"UserDefinedTypeName","pathNode":{"id":9037,"name":"AddressSet","nameLocations":["13785:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"13785:10:41"},"referencedDeclaration":8899,"src":"13785:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"13784:24:41"},"returnParameters":{"id":9044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9065,"src":"13832:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9041,"name":"address","nodeType":"ElementaryTypeName","src":"13832:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9042,"nodeType":"ArrayTypeName","src":"13832:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"13831:18:41"},"scope":9924,"src":"13769:273:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9100,"nodeType":"Block","src":"14695:204:41","statements":[{"assignments":[9083],"declarations":[{"constant":false,"id":9083,"mutability":"mutable","name":"store","nameLocation":"14722:5:41","nodeType":"VariableDeclaration","scope":9100,"src":"14705:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14705:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9082,"nodeType":"ArrayTypeName","src":"14705:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9090,"initialValue":{"arguments":[{"expression":{"id":9085,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9069,"src":"14738:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":9086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14742:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":8898,"src":"14738:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":9087,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9071,"src":"14750:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9088,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9073,"src":"14757:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9084,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8725,"src":"14730:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256,uint256) view returns (bytes32[] memory)"}},"id":9089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14730:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14705:56:41"},{"assignments":[9095],"declarations":[{"constant":false,"id":9095,"mutability":"mutable","name":"result","nameLocation":"14788:6:41","nodeType":"VariableDeclaration","scope":9100,"src":"14771:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9093,"name":"address","nodeType":"ElementaryTypeName","src":"14771:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9094,"nodeType":"ArrayTypeName","src":"14771:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":9096,"nodeType":"VariableDeclarationStatement","src":"14771:23:41"},{"AST":{"nativeSrc":"14830:39:41","nodeType":"YulBlock","src":"14830:39:41","statements":[{"nativeSrc":"14844:15:41","nodeType":"YulAssignment","src":"14844:15:41","value":{"name":"store","nativeSrc":"14854:5:41","nodeType":"YulIdentifier","src":"14854:5:41"},"variableNames":[{"name":"result","nativeSrc":"14844:6:41","nodeType":"YulIdentifier","src":"14844:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":9095,"isOffset":false,"isSlot":false,"src":"14844:6:41","valueSize":1},{"declaration":9083,"isOffset":false,"isSlot":false,"src":"14854:5:41","valueSize":1}],"flags":["memory-safe"],"id":9097,"nodeType":"InlineAssembly","src":"14805:64:41"},{"expression":{"id":9098,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9095,"src":"14886:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":9078,"id":9099,"nodeType":"Return","src":"14879:13:41"}]},"documentation":{"id":9066,"nodeType":"StructuredDocumentation","src":"14048:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9101,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"14595:6:41","nodeType":"FunctionDefinition","parameters":{"id":9074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9069,"mutability":"mutable","name":"set","nameLocation":"14621:3:41","nodeType":"VariableDeclaration","scope":9101,"src":"14602:22:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":9068,"nodeType":"UserDefinedTypeName","pathNode":{"id":9067,"name":"AddressSet","nameLocations":["14602:10:41"],"nodeType":"IdentifierPath","referencedDeclaration":8899,"src":"14602:10:41"},"referencedDeclaration":8899,"src":"14602:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$8899_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":9071,"mutability":"mutable","name":"start","nameLocation":"14634:5:41","nodeType":"VariableDeclaration","scope":9101,"src":"14626:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9070,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9073,"mutability":"mutable","name":"end","nameLocation":"14649:3:41","nodeType":"VariableDeclaration","scope":9101,"src":"14641:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9072,"name":"uint256","nodeType":"ElementaryTypeName","src":"14641:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14601:52:41"},"returnParameters":{"id":9078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9101,"src":"14677:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9075,"name":"address","nodeType":"ElementaryTypeName","src":"14677:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9076,"nodeType":"ArrayTypeName","src":"14677:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14676:18:41"},"scope":9924,"src":"14586:313:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":9105,"members":[{"constant":false,"id":9104,"mutability":"mutable","name":"_inner","nameLocation":"14950:6:41","nodeType":"VariableDeclaration","scope":9105,"src":"14946:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":9103,"nodeType":"UserDefinedTypeName","pathNode":{"id":9102,"name":"Set","nameLocations":["14946:3:41"],"nodeType":"IdentifierPath","referencedDeclaration":8413,"src":"14946:3:41"},"referencedDeclaration":8413,"src":"14946:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"14928:7:41","nodeType":"StructDefinition","scope":9924,"src":"14921:42:41","visibility":"public"},{"body":{"id":9125,"nodeType":"Block","src":"15206:56:41","statements":[{"expression":{"arguments":[{"expression":{"id":9117,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9109,"src":"15228:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15232:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"15228:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":9121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"15248:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15240:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15240:7:41","typeDescriptions":{}}},"id":9122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15240:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9116,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"15223:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":9123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15223:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9115,"id":9124,"nodeType":"Return","src":"15216:39:41"}]},"documentation":{"id":9106,"nodeType":"StructuredDocumentation","src":"14969:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":9126,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"15142:3:41","nodeType":"FunctionDefinition","parameters":{"id":9112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9109,"mutability":"mutable","name":"set","nameLocation":"15162:3:41","nodeType":"VariableDeclaration","scope":9126,"src":"15146:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9108,"nodeType":"UserDefinedTypeName","pathNode":{"id":9107,"name":"UintSet","nameLocations":["15146:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"15146:7:41"},"referencedDeclaration":9105,"src":"15146:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":9111,"mutability":"mutable","name":"value","nameLocation":"15175:5:41","nodeType":"VariableDeclaration","scope":9126,"src":"15167:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9110,"name":"uint256","nodeType":"ElementaryTypeName","src":"15167:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15145:36:41"},"returnParameters":{"id":9115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9126,"src":"15200:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9113,"name":"bool","nodeType":"ElementaryTypeName","src":"15200:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15199:6:41"},"scope":9924,"src":"15133:129:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9146,"nodeType":"Block","src":"15506:59:41","statements":[{"expression":{"arguments":[{"expression":{"id":9138,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"15531:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15535:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"15531:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":9142,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9132,"src":"15551:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15543:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15543:7:41","typeDescriptions":{}}},"id":9143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15543:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9137,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"15523:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":9144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15523:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9136,"id":9145,"nodeType":"Return","src":"15516:42:41"}]},"documentation":{"id":9127,"nodeType":"StructuredDocumentation","src":"15268:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":9147,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"15439:6:41","nodeType":"FunctionDefinition","parameters":{"id":9133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9130,"mutability":"mutable","name":"set","nameLocation":"15462:3:41","nodeType":"VariableDeclaration","scope":9147,"src":"15446:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9129,"nodeType":"UserDefinedTypeName","pathNode":{"id":9128,"name":"UintSet","nameLocations":["15446:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"15446:7:41"},"referencedDeclaration":9105,"src":"15446:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":9132,"mutability":"mutable","name":"value","nameLocation":"15475:5:41","nodeType":"VariableDeclaration","scope":9147,"src":"15467:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9131,"name":"uint256","nodeType":"ElementaryTypeName","src":"15467:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15445:36:41"},"returnParameters":{"id":9136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9147,"src":"15500:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9134,"name":"bool","nodeType":"ElementaryTypeName","src":"15500:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15499:6:41"},"scope":9924,"src":"15430:135:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9159,"nodeType":"Block","src":"15924:35:41","statements":[{"expression":{"arguments":[{"expression":{"id":9155,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9151,"src":"15941:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15945:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"15941:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":9154,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8582,"src":"15934:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$8413_storage_ptr_$returns$__$","typeString":"function (struct EnumerableSet.Set storage pointer)"}},"id":9157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15934:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9158,"nodeType":"ExpressionStatement","src":"15934:18:41"}]},"documentation":{"id":9148,"nodeType":"StructuredDocumentation","src":"15571:303:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."},"id":9160,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"15888:5:41","nodeType":"FunctionDefinition","parameters":{"id":9152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9151,"mutability":"mutable","name":"set","nameLocation":"15910:3:41","nodeType":"VariableDeclaration","scope":9160,"src":"15894:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9150,"nodeType":"UserDefinedTypeName","pathNode":{"id":9149,"name":"UintSet","nameLocations":["15894:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"15894:7:41"},"referencedDeclaration":9105,"src":"15894:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"15893:21:41"},"returnParameters":{"id":9153,"nodeType":"ParameterList","parameters":[],"src":"15924:0:41"},"scope":9924,"src":"15879:80:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9180,"nodeType":"Block","src":"16123:61:41","statements":[{"expression":{"arguments":[{"expression":{"id":9172,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9164,"src":"16150:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16154:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"16150:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":9176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9166,"src":"16170:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16162:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16162:7:41","typeDescriptions":{}}},"id":9177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16162:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9171,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8601,"src":"16140:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16140:37:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9170,"id":9179,"nodeType":"Return","src":"16133:44:41"}]},"documentation":{"id":9161,"nodeType":"StructuredDocumentation","src":"15965:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":9181,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"16049:8:41","nodeType":"FunctionDefinition","parameters":{"id":9167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9164,"mutability":"mutable","name":"set","nameLocation":"16074:3:41","nodeType":"VariableDeclaration","scope":9181,"src":"16058:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9163,"nodeType":"UserDefinedTypeName","pathNode":{"id":9162,"name":"UintSet","nameLocations":["16058:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"16058:7:41"},"referencedDeclaration":9105,"src":"16058:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":9166,"mutability":"mutable","name":"value","nameLocation":"16087:5:41","nodeType":"VariableDeclaration","scope":9181,"src":"16079:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9165,"name":"uint256","nodeType":"ElementaryTypeName","src":"16079:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16057:36:41"},"returnParameters":{"id":9170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9181,"src":"16117:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9168,"name":"bool","nodeType":"ElementaryTypeName","src":"16117:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16116:6:41"},"scope":9924,"src":"16040:144:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9195,"nodeType":"Block","src":"16334:43:41","statements":[{"expression":{"arguments":[{"expression":{"id":9191,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"16359:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16363:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"16359:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":9190,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"16351:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":9193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16351:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9189,"id":9194,"nodeType":"Return","src":"16344:26:41"}]},"documentation":{"id":9182,"nodeType":"StructuredDocumentation","src":"16190:70:41","text":" @dev Returns the number of values in the set. O(1)."},"id":9196,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"16274:6:41","nodeType":"FunctionDefinition","parameters":{"id":9186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9185,"mutability":"mutable","name":"set","nameLocation":"16297:3:41","nodeType":"VariableDeclaration","scope":9196,"src":"16281:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9184,"nodeType":"UserDefinedTypeName","pathNode":{"id":9183,"name":"UintSet","nameLocations":["16281:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"16281:7:41"},"referencedDeclaration":9105,"src":"16281:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"16280:21:41"},"returnParameters":{"id":9189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9196,"src":"16325:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9187,"name":"uint256","nodeType":"ElementaryTypeName","src":"16325:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16324:9:41"},"scope":9924,"src":"16265:112:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9216,"nodeType":"Block","src":"16799:55:41","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":9210,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"16828:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16832:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"16828:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":9212,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9202,"src":"16840:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9209,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8632,"src":"16824:3:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16824:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16816:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:41","typeDescriptions":{}}},"id":9214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16816:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9206,"id":9215,"nodeType":"Return","src":"16809:38:41"}]},"documentation":{"id":9197,"nodeType":"StructuredDocumentation","src":"16383:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":9217,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"16728:2:41","nodeType":"FunctionDefinition","parameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"mutability":"mutable","name":"set","nameLocation":"16747:3:41","nodeType":"VariableDeclaration","scope":9217,"src":"16731:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9199,"nodeType":"UserDefinedTypeName","pathNode":{"id":9198,"name":"UintSet","nameLocations":["16731:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"16731:7:41"},"referencedDeclaration":9105,"src":"16731:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":9202,"mutability":"mutable","name":"index","nameLocation":"16760:5:41","nodeType":"VariableDeclaration","scope":9217,"src":"16752:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9201,"name":"uint256","nodeType":"ElementaryTypeName","src":"16752:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16730:36:41"},"returnParameters":{"id":9206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9217,"src":"16790:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9204,"name":"uint256","nodeType":"ElementaryTypeName","src":"16790:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16789:9:41"},"scope":9924,"src":"16719:135:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9246,"nodeType":"Block","src":"17472:192:41","statements":[{"assignments":[9231],"declarations":[{"constant":false,"id":9231,"mutability":"mutable","name":"store","nameLocation":"17499:5:41","nodeType":"VariableDeclaration","scope":9246,"src":"17482:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17482:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9230,"nodeType":"ArrayTypeName","src":"17482:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9236,"initialValue":{"arguments":[{"expression":{"id":9233,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9221,"src":"17515:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17519:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"17515:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":9232,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8646,"src":"17507:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":9235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17507:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17482:44:41"},{"assignments":[9241],"declarations":[{"constant":false,"id":9241,"mutability":"mutable","name":"result","nameLocation":"17553:6:41","nodeType":"VariableDeclaration","scope":9246,"src":"17536:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9239,"name":"uint256","nodeType":"ElementaryTypeName","src":"17536:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9240,"nodeType":"ArrayTypeName","src":"17536:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":9242,"nodeType":"VariableDeclarationStatement","src":"17536:23:41"},{"AST":{"nativeSrc":"17595:39:41","nodeType":"YulBlock","src":"17595:39:41","statements":[{"nativeSrc":"17609:15:41","nodeType":"YulAssignment","src":"17609:15:41","value":{"name":"store","nativeSrc":"17619:5:41","nodeType":"YulIdentifier","src":"17619:5:41"},"variableNames":[{"name":"result","nativeSrc":"17609:6:41","nodeType":"YulIdentifier","src":"17609:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":9241,"isOffset":false,"isSlot":false,"src":"17609:6:41","valueSize":1},{"declaration":9231,"isOffset":false,"isSlot":false,"src":"17619:5:41","valueSize":1}],"flags":["memory-safe"],"id":9243,"nodeType":"InlineAssembly","src":"17570:64:41"},{"expression":{"id":9244,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9241,"src":"17651:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":9226,"id":9245,"nodeType":"Return","src":"17644:13:41"}]},"documentation":{"id":9218,"nodeType":"StructuredDocumentation","src":"16860:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9247,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"17403:6:41","nodeType":"FunctionDefinition","parameters":{"id":9222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9221,"mutability":"mutable","name":"set","nameLocation":"17426:3:41","nodeType":"VariableDeclaration","scope":9247,"src":"17410:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9220,"nodeType":"UserDefinedTypeName","pathNode":{"id":9219,"name":"UintSet","nameLocations":["17410:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"17410:7:41"},"referencedDeclaration":9105,"src":"17410:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"17409:21:41"},"returnParameters":{"id":9226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9247,"src":"17454:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9223,"name":"uint256","nodeType":"ElementaryTypeName","src":"17454:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9224,"nodeType":"ArrayTypeName","src":"17454:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"17453:18:41"},"scope":9924,"src":"17394:270:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9282,"nodeType":"Block","src":"18314:204:41","statements":[{"assignments":[9265],"declarations":[{"constant":false,"id":9265,"mutability":"mutable","name":"store","nameLocation":"18341:5:41","nodeType":"VariableDeclaration","scope":9282,"src":"18324:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":9263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18324:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9264,"nodeType":"ArrayTypeName","src":"18324:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":9272,"initialValue":{"arguments":[{"expression":{"id":9267,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9251,"src":"18357:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":9268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18361:6:41","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18357:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":9269,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9253,"src":"18369:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9270,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9255,"src":"18376:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$8413_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9266,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[8646,8725],"referencedDeclaration":8725,"src":"18349:7:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$8413_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256,uint256) view returns (bytes32[] memory)"}},"id":9271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18349:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18324:56:41"},{"assignments":[9277],"declarations":[{"constant":false,"id":9277,"mutability":"mutable","name":"result","nameLocation":"18407:6:41","nodeType":"VariableDeclaration","scope":9282,"src":"18390:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9275,"name":"uint256","nodeType":"ElementaryTypeName","src":"18390:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9276,"nodeType":"ArrayTypeName","src":"18390:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":9278,"nodeType":"VariableDeclarationStatement","src":"18390:23:41"},{"AST":{"nativeSrc":"18449:39:41","nodeType":"YulBlock","src":"18449:39:41","statements":[{"nativeSrc":"18463:15:41","nodeType":"YulAssignment","src":"18463:15:41","value":{"name":"store","nativeSrc":"18473:5:41","nodeType":"YulIdentifier","src":"18473:5:41"},"variableNames":[{"name":"result","nativeSrc":"18463:6:41","nodeType":"YulIdentifier","src":"18463:6:41"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":9277,"isOffset":false,"isSlot":false,"src":"18463:6:41","valueSize":1},{"declaration":9265,"isOffset":false,"isSlot":false,"src":"18473:5:41","valueSize":1}],"flags":["memory-safe"],"id":9279,"nodeType":"InlineAssembly","src":"18424:64:41"},{"expression":{"id":9280,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9277,"src":"18505:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":9260,"id":9281,"nodeType":"Return","src":"18498:13:41"}]},"documentation":{"id":9248,"nodeType":"StructuredDocumentation","src":"17670:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9283,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"18217:6:41","nodeType":"FunctionDefinition","parameters":{"id":9256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9251,"mutability":"mutable","name":"set","nameLocation":"18240:3:41","nodeType":"VariableDeclaration","scope":9283,"src":"18224:19:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":9250,"nodeType":"UserDefinedTypeName","pathNode":{"id":9249,"name":"UintSet","nameLocations":["18224:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":9105,"src":"18224:7:41"},"referencedDeclaration":9105,"src":"18224:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$9105_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":9253,"mutability":"mutable","name":"start","nameLocation":"18253:5:41","nodeType":"VariableDeclaration","scope":9283,"src":"18245:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9252,"name":"uint256","nodeType":"ElementaryTypeName","src":"18245:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9255,"mutability":"mutable","name":"end","nameLocation":"18268:3:41","nodeType":"VariableDeclaration","scope":9283,"src":"18260:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9254,"name":"uint256","nodeType":"ElementaryTypeName","src":"18260:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18223:49:41"},"returnParameters":{"id":9260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9283,"src":"18296:16:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9257,"name":"uint256","nodeType":"ElementaryTypeName","src":"18296:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9258,"nodeType":"ArrayTypeName","src":"18296:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"18295:18:41"},"scope":9924,"src":"18208:310:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.StringSet","id":9291,"members":[{"constant":false,"id":9286,"mutability":"mutable","name":"_values","nameLocation":"18593:7:41","nodeType":"VariableDeclaration","scope":9291,"src":"18584:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9284,"name":"string","nodeType":"ElementaryTypeName","src":"18584:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9285,"nodeType":"ArrayTypeName","src":"18584:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":9290,"mutability":"mutable","name":"_positions","nameLocation":"18784:10:41","nodeType":"VariableDeclaration","scope":9291,"src":"18751:43:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"typeName":{"id":9289,"keyName":"value","keyNameLocation":"18766:5:41","keyType":{"id":9287,"name":"string","nodeType":"ElementaryTypeName","src":"18759:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"18751:32:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9288,"name":"uint256","nodeType":"ElementaryTypeName","src":"18775:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"StringSet","nameLocation":"18531:9:41","nodeType":"StructDefinition","scope":9924,"src":"18524:277:41","visibility":"public"},{"body":{"id":9332,"nodeType":"Block","src":"19052:336:41","statements":[{"condition":{"id":9306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19066:21:41","subExpression":{"arguments":[{"id":9303,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9295,"src":"19076:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},{"id":9304,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9297,"src":"19081:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9302,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[8796,8993,9181,9479,9799],"referencedDeclaration":9479,"src":"19067:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StringSet_$9291_storage_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.StringSet storage pointer,string memory) view returns (bool)"}},"id":9305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19067:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9330,"nodeType":"Block","src":"19345:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":9328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19366:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9301,"id":9329,"nodeType":"Return","src":"19359:12:41"}]},"id":9331,"nodeType":"IfStatement","src":"19062:320:41","trueBody":{"id":9327,"nodeType":"Block","src":"19089:250:41","statements":[{"expression":{"arguments":[{"id":9312,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9297,"src":"19120:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":9307,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9295,"src":"19103:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19107:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"19103:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19115:4:41","memberName":"push","nodeType":"MemberAccess","src":"19103:16:41","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":9313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9314,"nodeType":"ExpressionStatement","src":"19103:23:41"},{"expression":{"id":9323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9315,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9295,"src":"19261:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19265:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"19261:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9319,"indexExpression":{"id":9317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9297,"src":"19276:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19261:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":9320,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9295,"src":"19285:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19289:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"19285:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19297:6:41","memberName":"length","nodeType":"MemberAccess","src":"19285:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19261:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9324,"nodeType":"ExpressionStatement","src":"19261:42:41"},{"expression":{"hexValue":"74727565","id":9325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19324:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9301,"id":9326,"nodeType":"Return","src":"19317:11:41"}]}}]},"documentation":{"id":9292,"nodeType":"StructuredDocumentation","src":"18807:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":9333,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"18980:3:41","nodeType":"FunctionDefinition","parameters":{"id":9298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9295,"mutability":"mutable","name":"set","nameLocation":"19002:3:41","nodeType":"VariableDeclaration","scope":9333,"src":"18984:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9294,"nodeType":"UserDefinedTypeName","pathNode":{"id":9293,"name":"StringSet","nameLocations":["18984:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"18984:9:41"},"referencedDeclaration":9291,"src":"18984:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"},{"constant":false,"id":9297,"mutability":"mutable","name":"value","nameLocation":"19021:5:41","nodeType":"VariableDeclaration","scope":9333,"src":"19007:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9296,"name":"string","nodeType":"ElementaryTypeName","src":"19007:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18983:44:41"},"returnParameters":{"id":9301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9333,"src":"19046:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9299,"name":"bool","nodeType":"ElementaryTypeName","src":"19046:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19045:6:41"},"scope":9924,"src":"18971:417:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9416,"nodeType":"Block","src":"19640:1302:41","statements":[{"assignments":[9345],"declarations":[{"constant":false,"id":9345,"mutability":"mutable","name":"position","nameLocation":"19752:8:41","nodeType":"VariableDeclaration","scope":9416,"src":"19744:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9344,"name":"uint256","nodeType":"ElementaryTypeName","src":"19744:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9350,"initialValue":{"baseExpression":{"expression":{"id":9346,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"19763:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19767:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"19763:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9349,"indexExpression":{"id":9348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9339,"src":"19778:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19763:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19744:40:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9351,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"19799:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19811:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19799:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9414,"nodeType":"Block","src":"20899:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":9412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20920:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9343,"id":9413,"nodeType":"Return","src":"20913:12:41"}]},"id":9415,"nodeType":"IfStatement","src":"19795:1141:41","trueBody":{"id":9411,"nodeType":"Block","src":"19814:1079:41","statements":[{"assignments":[9355],"declarations":[{"constant":false,"id":9355,"mutability":"mutable","name":"valueIndex","nameLocation":"20174:10:41","nodeType":"VariableDeclaration","scope":9411,"src":"20166:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9354,"name":"uint256","nodeType":"ElementaryTypeName","src":"20166:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9359,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9356,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"20187:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20198:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20187:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20166:33:41"},{"assignments":[9361],"declarations":[{"constant":false,"id":9361,"mutability":"mutable","name":"lastIndex","nameLocation":"20221:9:41","nodeType":"VariableDeclaration","scope":9411,"src":"20213:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9360,"name":"uint256","nodeType":"ElementaryTypeName","src":"20213:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9367,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9362,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20233:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20237:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"20233:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20245:6:41","memberName":"length","nodeType":"MemberAccess","src":"20233:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20254:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20233:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20213:42:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9368,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"20274:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9369,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"20288:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20274:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9395,"nodeType":"IfStatement","src":"20270:384:41","trueBody":{"id":9394,"nodeType":"Block","src":"20299:355:41","statements":[{"assignments":[9372],"declarations":[{"constant":false,"id":9372,"mutability":"mutable","name":"lastValue","nameLocation":"20331:9:41","nodeType":"VariableDeclaration","scope":9394,"src":"20317:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9371,"name":"string","nodeType":"ElementaryTypeName","src":"20317:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":9377,"initialValue":{"baseExpression":{"expression":{"id":9373,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20343:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20347:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"20343:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9376,"indexExpression":{"id":9375,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"20355:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20343:22:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20317:48:41"},{"expression":{"id":9384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9378,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20464:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20468:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"20464:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9382,"indexExpression":{"id":9380,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9355,"src":"20476:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20464:23:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9383,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9372,"src":"20490:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"20464:35:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9385,"nodeType":"ExpressionStatement","src":"20464:35:41"},{"expression":{"id":9392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9386,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20603:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20607:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"20603:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9390,"indexExpression":{"id":9388,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9372,"src":"20618:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20603:25:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9391,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"20631:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20603:36:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9393,"nodeType":"ExpressionStatement","src":"20603:36:41"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":9396,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20732:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20736:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"20732:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20744:3:41","memberName":"pop","nodeType":"MemberAccess","src":"20732:15:41","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer)"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20732:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9402,"nodeType":"ExpressionStatement","src":"20732:17:41"},{"expression":{"id":9407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"20828:28:41","subExpression":{"baseExpression":{"expression":{"id":9403,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"20835:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20839:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"20835:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9406,"indexExpression":{"id":9405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9339,"src":"20850:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20835:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9408,"nodeType":"ExpressionStatement","src":"20828:28:41"},{"expression":{"hexValue":"74727565","id":9409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20878:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9343,"id":9410,"nodeType":"Return","src":"20871:11:41"}]}}]},"documentation":{"id":9334,"nodeType":"StructuredDocumentation","src":"19394:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":9417,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"19565:6:41","nodeType":"FunctionDefinition","parameters":{"id":9340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9337,"mutability":"mutable","name":"set","nameLocation":"19590:3:41","nodeType":"VariableDeclaration","scope":9417,"src":"19572:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9336,"nodeType":"UserDefinedTypeName","pathNode":{"id":9335,"name":"StringSet","nameLocations":["19572:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"19572:9:41"},"referencedDeclaration":9291,"src":"19572:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"},{"constant":false,"id":9339,"mutability":"mutable","name":"value","nameLocation":"19609:5:41","nodeType":"VariableDeclaration","scope":9417,"src":"19595:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9338,"name":"string","nodeType":"ElementaryTypeName","src":"19595:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19571:44:41"},"returnParameters":{"id":9343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9417,"src":"19634:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9341,"name":"bool","nodeType":"ElementaryTypeName","src":"19634:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19633:6:41"},"scope":9924,"src":"19556:1386:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9459,"nodeType":"Block","src":"21303:195:41","statements":[{"assignments":[9425],"declarations":[{"constant":false,"id":9425,"mutability":"mutable","name":"len","nameLocation":"21321:3:41","nodeType":"VariableDeclaration","scope":9459,"src":"21313:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9424,"name":"uint256","nodeType":"ElementaryTypeName","src":"21313:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9429,"initialValue":{"arguments":[{"id":9427,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"21334:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}],"id":9426,"name":"length","nodeType":"Identifier","overloadedDeclarations":[8811,9008,9196,9493,9813],"referencedDeclaration":9493,"src":"21327:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StringSet_$9291_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.StringSet storage pointer) view returns (uint256)"}},"id":9428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21327:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21313:25:41"},{"body":{"id":9449,"nodeType":"Block","src":"21382:62:41","statements":[{"expression":{"id":9447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21396:37:41","subExpression":{"baseExpression":{"expression":{"id":9440,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"21403:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21407:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"21403:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9446,"indexExpression":{"baseExpression":{"expression":{"id":9442,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"21418:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21422:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"21418:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9445,"indexExpression":{"id":9444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"21430:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21418:14:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21403:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9448,"nodeType":"ExpressionStatement","src":"21396:37:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9434,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"21368:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9435,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"21372:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21368:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9450,"initializationExpression":{"assignments":[9431],"declarations":[{"constant":false,"id":9431,"mutability":"mutable","name":"i","nameLocation":"21361:1:41","nodeType":"VariableDeclaration","scope":9450,"src":"21353:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9430,"name":"uint256","nodeType":"ElementaryTypeName","src":"21353:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9433,"initialValue":{"hexValue":"30","id":9432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21365:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21353:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"21377:3:41","subExpression":{"id":9437,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"21379:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9439,"nodeType":"ExpressionStatement","src":"21377:3:41"},"nodeType":"ForStatement","src":"21348:96:41"},{"expression":{"arguments":[{"expression":{"id":9454,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9421,"src":"21476:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21480:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"21476:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"hexValue":"30","id":9456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21489:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":9451,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"21453:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21460:15:41","memberName":"unsafeSetLength","nodeType":"MemberAccess","referencedDeclaration":4369,"src":"21453:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (string storage ref[] storage pointer,uint256)"}},"id":9457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21453:38:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9458,"nodeType":"ExpressionStatement","src":"21453:38:41"}]},"documentation":{"id":9418,"nodeType":"StructuredDocumentation","src":"20948:303:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."},"id":9460,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"21265:5:41","nodeType":"FunctionDefinition","parameters":{"id":9422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9421,"mutability":"mutable","name":"set","nameLocation":"21289:3:41","nodeType":"VariableDeclaration","scope":9460,"src":"21271:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9420,"nodeType":"UserDefinedTypeName","pathNode":{"id":9419,"name":"StringSet","nameLocations":["21271:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"21271:9:41"},"referencedDeclaration":9291,"src":"21271:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"}],"src":"21270:23:41"},"returnParameters":{"id":9423,"nodeType":"ParameterList","parameters":[],"src":"21303:0:41"},"scope":9924,"src":"21256:242:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9478,"nodeType":"Block","src":"21670:50:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":9471,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9464,"src":"21687:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21691:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9290,"src":"21687:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_uint256_$","typeString":"mapping(string memory => uint256)"}},"id":9474,"indexExpression":{"id":9473,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9466,"src":"21702:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21687:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21687:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9470,"id":9477,"nodeType":"Return","src":"21680:33:41"}]},"documentation":{"id":9461,"nodeType":"StructuredDocumentation","src":"21504:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":9479,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"21588:8:41","nodeType":"FunctionDefinition","parameters":{"id":9467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9464,"mutability":"mutable","name":"set","nameLocation":"21615:3:41","nodeType":"VariableDeclaration","scope":9479,"src":"21597:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9463,"nodeType":"UserDefinedTypeName","pathNode":{"id":9462,"name":"StringSet","nameLocations":["21597:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"21597:9:41"},"referencedDeclaration":9291,"src":"21597:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"},{"constant":false,"id":9466,"mutability":"mutable","name":"value","nameLocation":"21634:5:41","nodeType":"VariableDeclaration","scope":9479,"src":"21620:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9465,"name":"string","nodeType":"ElementaryTypeName","src":"21620:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21596:44:41"},"returnParameters":{"id":9470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9479,"src":"21664:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9468,"name":"bool","nodeType":"ElementaryTypeName","src":"21664:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21663:6:41"},"scope":9924,"src":"21579:141:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9492,"nodeType":"Block","src":"21872:42:41","statements":[{"expression":{"expression":{"expression":{"id":9488,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"21889:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21893:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"21889:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21901:6:41","memberName":"length","nodeType":"MemberAccess","src":"21889:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9487,"id":9491,"nodeType":"Return","src":"21882:25:41"}]},"documentation":{"id":9480,"nodeType":"StructuredDocumentation","src":"21726:70:41","text":" @dev Returns the number of values on the set. O(1)."},"id":9493,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"21810:6:41","nodeType":"FunctionDefinition","parameters":{"id":9484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9483,"mutability":"mutable","name":"set","nameLocation":"21835:3:41","nodeType":"VariableDeclaration","scope":9493,"src":"21817:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9482,"nodeType":"UserDefinedTypeName","pathNode":{"id":9481,"name":"StringSet","nameLocations":["21817:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"21817:9:41"},"referencedDeclaration":9291,"src":"21817:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"}],"src":"21816:23:41"},"returnParameters":{"id":9487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9493,"src":"21863:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9485,"name":"uint256","nodeType":"ElementaryTypeName","src":"21863:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21862:9:41"},"scope":9924,"src":"21801:113:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9509,"nodeType":"Block","src":"22344:42:41","statements":[{"expression":{"baseExpression":{"expression":{"id":9504,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9497,"src":"22361:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22365:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"22361:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":9507,"indexExpression":{"id":9506,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"22373:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22361:18:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9503,"id":9508,"nodeType":"Return","src":"22354:25:41"}]},"documentation":{"id":9494,"nodeType":"StructuredDocumentation","src":"21920:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":9510,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"22265:2:41","nodeType":"FunctionDefinition","parameters":{"id":9500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9497,"mutability":"mutable","name":"set","nameLocation":"22286:3:41","nodeType":"VariableDeclaration","scope":9510,"src":"22268:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9496,"nodeType":"UserDefinedTypeName","pathNode":{"id":9495,"name":"StringSet","nameLocations":["22268:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"22268:9:41"},"referencedDeclaration":9291,"src":"22268:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"},{"constant":false,"id":9499,"mutability":"mutable","name":"index","nameLocation":"22299:5:41","nodeType":"VariableDeclaration","scope":9510,"src":"22291:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9498,"name":"uint256","nodeType":"ElementaryTypeName","src":"22291:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22267:38:41"},"returnParameters":{"id":9503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9510,"src":"22329:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9501,"name":"string","nodeType":"ElementaryTypeName","src":"22329:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22328:15:41"},"scope":9924,"src":"22256:130:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9523,"nodeType":"Block","src":"23005:35:41","statements":[{"expression":{"expression":{"id":9520,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9514,"src":"23022:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23026:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"23022:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"functionReturnParameters":9519,"id":9522,"nodeType":"Return","src":"23015:18:41"}]},"documentation":{"id":9511,"nodeType":"StructuredDocumentation","src":"22392:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9524,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"22935:6:41","nodeType":"FunctionDefinition","parameters":{"id":9515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9514,"mutability":"mutable","name":"set","nameLocation":"22960:3:41","nodeType":"VariableDeclaration","scope":9524,"src":"22942:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9513,"nodeType":"UserDefinedTypeName","pathNode":{"id":9512,"name":"StringSet","nameLocations":["22942:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"22942:9:41"},"referencedDeclaration":9291,"src":"22942:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"}],"src":"22941:23:41"},"returnParameters":{"id":9519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9524,"src":"22988:15:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9516,"name":"string","nodeType":"ElementaryTypeName","src":"22988:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9517,"nodeType":"ArrayTypeName","src":"22988:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"22987:17:41"},"scope":9924,"src":"22926:114:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9602,"nodeType":"Block","src":"23691:389:41","statements":[{"id":9601,"nodeType":"UncheckedBlock","src":"23701:373:41","statements":[{"expression":{"id":9546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9538,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"23725:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9541,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"23740:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":9543,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"23752:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}],"id":9542,"name":"length","nodeType":"Identifier","overloadedDeclarations":[8811,9008,9196,9493,9813],"referencedDeclaration":9493,"src":"23745:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StringSet_$9291_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.StringSet storage pointer) view returns (uint256)"}},"id":9544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23745:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9539,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"23731:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":9540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23736:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"23731:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23731:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23725:32:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9547,"nodeType":"ExpressionStatement","src":"23725:32:41"},{"expression":{"id":9554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9548,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"23771:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9551,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"23788:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9552,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"23795:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9549,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"23779:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":9550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23784:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"23779:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23779:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23771:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9555,"nodeType":"ExpressionStatement","src":"23771:28:41"},{"assignments":[9557],"declarations":[{"constant":false,"id":9557,"mutability":"mutable","name":"len","nameLocation":"23822:3:41","nodeType":"VariableDeclaration","scope":9601,"src":"23814:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9556,"name":"uint256","nodeType":"ElementaryTypeName","src":"23814:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9561,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9558,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"23828:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9559,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"23834:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23828:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23814:25:41"},{"assignments":[9566],"declarations":[{"constant":false,"id":9566,"mutability":"mutable","name":"result","nameLocation":"23869:6:41","nodeType":"VariableDeclaration","scope":9601,"src":"23853:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9564,"name":"string","nodeType":"ElementaryTypeName","src":"23853:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9565,"nodeType":"ArrayTypeName","src":"23853:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":9572,"initialValue":{"arguments":[{"id":9570,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9557,"src":"23891:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"23878:12:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":9567,"name":"string","nodeType":"ElementaryTypeName","src":"23882:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9568,"nodeType":"ArrayTypeName","src":"23882:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":9571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23878:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"23853:42:41"},{"body":{"id":9597,"nodeType":"Block","src":"23943:94:41","statements":[{"expression":{"id":9595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9583,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"23961:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":9585,"indexExpression":{"id":9584,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"23968:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23961:9:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"expression":{"id":9588,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"23993:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet storage pointer"}},"id":9589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23997:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9286,"src":"23993:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9590,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"24006:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"24014:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24006:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9586,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"23973:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23980:12:41","memberName":"unsafeAccess","nodeType":"MemberAccess","referencedDeclaration":4249,"src":"23973:19:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_StringSlot_$4674_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,uint256) pure returns (struct StorageSlot.StringSlot storage pointer)"}},"id":9593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23973:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$4674_storage_ptr","typeString":"struct StorageSlot.StringSlot storage pointer"}},"id":9594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:5:41","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4673,"src":"23973:49:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"23961:61:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":9596,"nodeType":"ExpressionStatement","src":"23961:61:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9577,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"23929:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9578,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9557,"src":"23933:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23929:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9598,"initializationExpression":{"assignments":[9574],"declarations":[{"constant":false,"id":9574,"mutability":"mutable","name":"i","nameLocation":"23922:1:41","nodeType":"VariableDeclaration","scope":9598,"src":"23914:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9573,"name":"uint256","nodeType":"ElementaryTypeName","src":"23914:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9576,"initialValue":{"hexValue":"30","id":9575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23926:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23914:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23938:3:41","subExpression":{"id":9580,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"23940:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9582,"nodeType":"ExpressionStatement","src":"23938:3:41"},"nodeType":"ForStatement","src":"23909:128:41"},{"expression":{"id":9599,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"24057:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":9537,"id":9600,"nodeType":"Return","src":"24050:13:41"}]}]},"documentation":{"id":9525,"nodeType":"StructuredDocumentation","src":"23046:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9603,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"23593:6:41","nodeType":"FunctionDefinition","parameters":{"id":9533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9528,"mutability":"mutable","name":"set","nameLocation":"23618:3:41","nodeType":"VariableDeclaration","scope":9603,"src":"23600:21:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"},"typeName":{"id":9527,"nodeType":"UserDefinedTypeName","pathNode":{"id":9526,"name":"StringSet","nameLocations":["23600:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":9291,"src":"23600:9:41"},"referencedDeclaration":9291,"src":"23600:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_StringSet_$9291_storage_ptr","typeString":"struct EnumerableSet.StringSet"}},"visibility":"internal"},{"constant":false,"id":9530,"mutability":"mutable","name":"start","nameLocation":"23631:5:41","nodeType":"VariableDeclaration","scope":9603,"src":"23623:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9529,"name":"uint256","nodeType":"ElementaryTypeName","src":"23623:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9532,"mutability":"mutable","name":"end","nameLocation":"23646:3:41","nodeType":"VariableDeclaration","scope":9603,"src":"23638:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9531,"name":"uint256","nodeType":"ElementaryTypeName","src":"23638:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23599:51:41"},"returnParameters":{"id":9537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9603,"src":"23674:15:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":9534,"name":"string","nodeType":"ElementaryTypeName","src":"23674:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9535,"nodeType":"ArrayTypeName","src":"23674:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"23673:17:41"},"scope":9924,"src":"23584:496:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.BytesSet","id":9611,"members":[{"constant":false,"id":9606,"mutability":"mutable","name":"_values","nameLocation":"24153:7:41","nodeType":"VariableDeclaration","scope":9611,"src":"24145:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9604,"name":"bytes","nodeType":"ElementaryTypeName","src":"24145:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9605,"nodeType":"ArrayTypeName","src":"24145:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":9610,"mutability":"mutable","name":"_positions","nameLocation":"24343:10:41","nodeType":"VariableDeclaration","scope":9611,"src":"24311:42:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes => uint256)"},"typeName":{"id":9609,"keyName":"value","keyNameLocation":"24325:5:41","keyType":{"id":9607,"name":"bytes","nodeType":"ElementaryTypeName","src":"24319:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"nodeType":"Mapping","src":"24311:31:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":9608,"name":"uint256","nodeType":"ElementaryTypeName","src":"24334:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"BytesSet","nameLocation":"24093:8:41","nodeType":"StructDefinition","scope":9924,"src":"24086:274:41","visibility":"public"},{"body":{"id":9652,"nodeType":"Block","src":"24609:336:41","statements":[{"condition":{"id":9626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24623:21:41","subExpression":{"arguments":[{"id":9623,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9615,"src":"24633:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},{"id":9624,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"24638:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9622,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[8796,8993,9181,9479,9799],"referencedDeclaration":9799,"src":"24624:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BytesSet_$9611_storage_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.BytesSet storage pointer,bytes memory) view returns (bool)"}},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24624:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9650,"nodeType":"Block","src":"24902:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":9648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24923:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9621,"id":9649,"nodeType":"Return","src":"24916:12:41"}]},"id":9651,"nodeType":"IfStatement","src":"24619:320:41","trueBody":{"id":9647,"nodeType":"Block","src":"24646:250:41","statements":[{"expression":{"arguments":[{"id":9632,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"24677:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":9627,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9615,"src":"24660:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24664:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"24660:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24672:4:41","memberName":"push","nodeType":"MemberAccess","src":"24660:16:41","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes_storage_$dyn_storage_ptr_$_t_bytes_storage_$returns$__$attached_to$_t_array$_t_bytes_storage_$dyn_storage_ptr_$","typeString":"function (bytes storage ref[] storage pointer,bytes storage ref)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24660:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9634,"nodeType":"ExpressionStatement","src":"24660:23:41"},{"expression":{"id":9643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9635,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9615,"src":"24818:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24822:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"24818:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9639,"indexExpression":{"id":9637,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"24833:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24818:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":9640,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9615,"src":"24842:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24846:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"24842:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24854:6:41","memberName":"length","nodeType":"MemberAccess","src":"24842:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24818:42:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9644,"nodeType":"ExpressionStatement","src":"24818:42:41"},{"expression":{"hexValue":"74727565","id":9645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24881:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9621,"id":9646,"nodeType":"Return","src":"24874:11:41"}]}}]},"documentation":{"id":9612,"nodeType":"StructuredDocumentation","src":"24366:159:41","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":9653,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"24539:3:41","nodeType":"FunctionDefinition","parameters":{"id":9618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9615,"mutability":"mutable","name":"set","nameLocation":"24560:3:41","nodeType":"VariableDeclaration","scope":9653,"src":"24543:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9614,"nodeType":"UserDefinedTypeName","pathNode":{"id":9613,"name":"BytesSet","nameLocations":["24543:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"24543:8:41"},"referencedDeclaration":9611,"src":"24543:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"},{"constant":false,"id":9617,"mutability":"mutable","name":"value","nameLocation":"24578:5:41","nodeType":"VariableDeclaration","scope":9653,"src":"24565:18:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9616,"name":"bytes","nodeType":"ElementaryTypeName","src":"24565:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"24542:42:41"},"returnParameters":{"id":9621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9653,"src":"24603:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9619,"name":"bool","nodeType":"ElementaryTypeName","src":"24603:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24602:6:41"},"scope":9924,"src":"24530:415:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9736,"nodeType":"Block","src":"25195:1301:41","statements":[{"assignments":[9665],"declarations":[{"constant":false,"id":9665,"mutability":"mutable","name":"position","nameLocation":"25307:8:41","nodeType":"VariableDeclaration","scope":9736,"src":"25299:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9664,"name":"uint256","nodeType":"ElementaryTypeName","src":"25299:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9670,"initialValue":{"baseExpression":{"expression":{"id":9666,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"25318:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25322:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"25318:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9669,"indexExpression":{"id":9668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9659,"src":"25333:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25318:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25299:40:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9671,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"25354:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25366:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25354:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9734,"nodeType":"Block","src":"26453:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":9732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26474:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":9663,"id":9733,"nodeType":"Return","src":"26467:12:41"}]},"id":9735,"nodeType":"IfStatement","src":"25350:1140:41","trueBody":{"id":9731,"nodeType":"Block","src":"25369:1078:41","statements":[{"assignments":[9675],"declarations":[{"constant":false,"id":9675,"mutability":"mutable","name":"valueIndex","nameLocation":"25729:10:41","nodeType":"VariableDeclaration","scope":9731,"src":"25721:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9674,"name":"uint256","nodeType":"ElementaryTypeName","src":"25721:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9679,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9676,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"25742:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25753:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25742:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25721:33:41"},{"assignments":[9681],"declarations":[{"constant":false,"id":9681,"mutability":"mutable","name":"lastIndex","nameLocation":"25776:9:41","nodeType":"VariableDeclaration","scope":9731,"src":"25768:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9680,"name":"uint256","nodeType":"ElementaryTypeName","src":"25768:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9687,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9682,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"25788:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25792:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"25788:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25800:6:41","memberName":"length","nodeType":"MemberAccess","src":"25788:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25809:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25788:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25768:42:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9688,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9675,"src":"25829:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9689,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9681,"src":"25843:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25829:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9715,"nodeType":"IfStatement","src":"25825:383:41","trueBody":{"id":9714,"nodeType":"Block","src":"25854:354:41","statements":[{"assignments":[9692],"declarations":[{"constant":false,"id":9692,"mutability":"mutable","name":"lastValue","nameLocation":"25885:9:41","nodeType":"VariableDeclaration","scope":9714,"src":"25872:22:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9691,"name":"bytes","nodeType":"ElementaryTypeName","src":"25872:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9697,"initialValue":{"baseExpression":{"expression":{"id":9693,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"25897:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25901:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"25897:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9696,"indexExpression":{"id":9695,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9681,"src":"25909:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25897:22:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25872:47:41"},{"expression":{"id":9704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9698,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"26018:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26022:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"26018:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9702,"indexExpression":{"id":9700,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9675,"src":"26030:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26018:23:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9703,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"26044:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26018:35:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":9705,"nodeType":"ExpressionStatement","src":"26018:35:41"},{"expression":{"id":9712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":9706,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"26157:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26161:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"26157:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9710,"indexExpression":{"id":9708,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"26172:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26157:25:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9711,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9665,"src":"26185:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26157:36:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9713,"nodeType":"ExpressionStatement","src":"26157:36:41"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":9716,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"26286:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26290:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"26286:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26298:3:41","memberName":"pop","nodeType":"MemberAccess","src":"26286:15:41","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes_storage_$dyn_storage_ptr_$","typeString":"function (bytes storage ref[] storage pointer)"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26286:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9722,"nodeType":"ExpressionStatement","src":"26286:17:41"},{"expression":{"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26382:28:41","subExpression":{"baseExpression":{"expression":{"id":9723,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9657,"src":"26389:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26393:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"26389:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9726,"indexExpression":{"id":9725,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9659,"src":"26404:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26389:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9728,"nodeType":"ExpressionStatement","src":"26382:28:41"},{"expression":{"hexValue":"74727565","id":9729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26432:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9663,"id":9730,"nodeType":"Return","src":"26425:11:41"}]}}]},"documentation":{"id":9654,"nodeType":"StructuredDocumentation","src":"24951:157:41","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":9737,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"25122:6:41","nodeType":"FunctionDefinition","parameters":{"id":9660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9657,"mutability":"mutable","name":"set","nameLocation":"25146:3:41","nodeType":"VariableDeclaration","scope":9737,"src":"25129:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9656,"nodeType":"UserDefinedTypeName","pathNode":{"id":9655,"name":"BytesSet","nameLocations":["25129:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"25129:8:41"},"referencedDeclaration":9611,"src":"25129:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"},{"constant":false,"id":9659,"mutability":"mutable","name":"value","nameLocation":"25164:5:41","nodeType":"VariableDeclaration","scope":9737,"src":"25151:18:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9658,"name":"bytes","nodeType":"ElementaryTypeName","src":"25151:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"25128:42:41"},"returnParameters":{"id":9663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9737,"src":"25189:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9661,"name":"bool","nodeType":"ElementaryTypeName","src":"25189:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25188:6:41"},"scope":9924,"src":"25113:1383:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9779,"nodeType":"Block","src":"26856:195:41","statements":[{"assignments":[9745],"declarations":[{"constant":false,"id":9745,"mutability":"mutable","name":"len","nameLocation":"26874:3:41","nodeType":"VariableDeclaration","scope":9779,"src":"26866:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9744,"name":"uint256","nodeType":"ElementaryTypeName","src":"26866:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9749,"initialValue":{"arguments":[{"id":9747,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"26887:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}],"id":9746,"name":"length","nodeType":"Identifier","overloadedDeclarations":[8811,9008,9196,9493,9813],"referencedDeclaration":9813,"src":"26880:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BytesSet_$9611_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.BytesSet storage pointer) view returns (uint256)"}},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26880:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26866:25:41"},{"body":{"id":9769,"nodeType":"Block","src":"26935:62:41","statements":[{"expression":{"id":9767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"26949:37:41","subExpression":{"baseExpression":{"expression":{"id":9760,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"26956:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26960:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"26956:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9766,"indexExpression":{"baseExpression":{"expression":{"id":9762,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"26971:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26975:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"26971:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9765,"indexExpression":{"id":9764,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26983:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26971:14:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26956:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9768,"nodeType":"ExpressionStatement","src":"26949:37:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9754,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26921:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9755,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9745,"src":"26925:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26921:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9770,"initializationExpression":{"assignments":[9751],"declarations":[{"constant":false,"id":9751,"mutability":"mutable","name":"i","nameLocation":"26914:1:41","nodeType":"VariableDeclaration","scope":9770,"src":"26906:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9750,"name":"uint256","nodeType":"ElementaryTypeName","src":"26906:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9753,"initialValue":{"hexValue":"30","id":9752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26918:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26906:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26930:3:41","subExpression":{"id":9757,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9751,"src":"26932:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9759,"nodeType":"ExpressionStatement","src":"26930:3:41"},"nodeType":"ForStatement","src":"26901:96:41"},{"expression":{"arguments":[{"expression":{"id":9774,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9741,"src":"27029:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27033:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"27029:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},{"hexValue":"30","id":9776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27042:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":9771,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"27006:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27013:15:41","memberName":"unsafeSetLength","nodeType":"MemberAccess","referencedDeclaration":4358,"src":"27006:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_bytes_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes storage ref[] storage pointer,uint256)"}},"id":9777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27006:38:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9778,"nodeType":"ExpressionStatement","src":"27006:38:41"}]},"documentation":{"id":9738,"nodeType":"StructuredDocumentation","src":"26502:303:41","text":" @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block."},"id":9780,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"26819:5:41","nodeType":"FunctionDefinition","parameters":{"id":9742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9741,"mutability":"mutable","name":"set","nameLocation":"26842:3:41","nodeType":"VariableDeclaration","scope":9780,"src":"26825:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9740,"nodeType":"UserDefinedTypeName","pathNode":{"id":9739,"name":"BytesSet","nameLocations":["26825:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"26825:8:41"},"referencedDeclaration":9611,"src":"26825:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"}],"src":"26824:22:41"},"returnParameters":{"id":9743,"nodeType":"ParameterList","parameters":[],"src":"26856:0:41"},"scope":9924,"src":"26810:241:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9798,"nodeType":"Block","src":"27221:50:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":9791,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9784,"src":"27238:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27242:10:41","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":9610,"src":"27238:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"mapping(bytes memory => uint256)"}},"id":9794,"indexExpression":{"id":9793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9786,"src":"27253:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27238:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27263:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27238:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9790,"id":9797,"nodeType":"Return","src":"27231:33:41"}]},"documentation":{"id":9781,"nodeType":"StructuredDocumentation","src":"27057:70:41","text":" @dev Returns true if the value is in the set. O(1)."},"id":9799,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"27141:8:41","nodeType":"FunctionDefinition","parameters":{"id":9787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9784,"mutability":"mutable","name":"set","nameLocation":"27167:3:41","nodeType":"VariableDeclaration","scope":9799,"src":"27150:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9783,"nodeType":"UserDefinedTypeName","pathNode":{"id":9782,"name":"BytesSet","nameLocations":["27150:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"27150:8:41"},"referencedDeclaration":9611,"src":"27150:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"},{"constant":false,"id":9786,"mutability":"mutable","name":"value","nameLocation":"27185:5:41","nodeType":"VariableDeclaration","scope":9799,"src":"27172:18:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9785,"name":"bytes","nodeType":"ElementaryTypeName","src":"27172:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27149:42:41"},"returnParameters":{"id":9790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9799,"src":"27215:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9788,"name":"bool","nodeType":"ElementaryTypeName","src":"27215:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27214:6:41"},"scope":9924,"src":"27132:139:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9812,"nodeType":"Block","src":"27422:42:41","statements":[{"expression":{"expression":{"expression":{"id":9808,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9803,"src":"27439:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27443:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"27439:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27451:6:41","memberName":"length","nodeType":"MemberAccess","src":"27439:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9807,"id":9811,"nodeType":"Return","src":"27432:25:41"}]},"documentation":{"id":9800,"nodeType":"StructuredDocumentation","src":"27277:70:41","text":" @dev Returns the number of values on the set. O(1)."},"id":9813,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"27361:6:41","nodeType":"FunctionDefinition","parameters":{"id":9804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9803,"mutability":"mutable","name":"set","nameLocation":"27385:3:41","nodeType":"VariableDeclaration","scope":9813,"src":"27368:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9802,"nodeType":"UserDefinedTypeName","pathNode":{"id":9801,"name":"BytesSet","nameLocations":["27368:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"27368:8:41"},"referencedDeclaration":9611,"src":"27368:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"}],"src":"27367:22:41"},"returnParameters":{"id":9807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9813,"src":"27413:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9805,"name":"uint256","nodeType":"ElementaryTypeName","src":"27413:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27412:9:41"},"scope":9924,"src":"27352:112:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9829,"nodeType":"Block","src":"27892:42:41","statements":[{"expression":{"baseExpression":{"expression":{"id":9824,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"27909:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27913:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"27909:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":9827,"indexExpression":{"id":9826,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9819,"src":"27921:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27909:18:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"functionReturnParameters":9823,"id":9828,"nodeType":"Return","src":"27902:25:41"}]},"documentation":{"id":9814,"nodeType":"StructuredDocumentation","src":"27470:331:41","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":9830,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"27815:2:41","nodeType":"FunctionDefinition","parameters":{"id":9820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9817,"mutability":"mutable","name":"set","nameLocation":"27835:3:41","nodeType":"VariableDeclaration","scope":9830,"src":"27818:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9816,"nodeType":"UserDefinedTypeName","pathNode":{"id":9815,"name":"BytesSet","nameLocations":["27818:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"27818:8:41"},"referencedDeclaration":9611,"src":"27818:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"},{"constant":false,"id":9819,"mutability":"mutable","name":"index","nameLocation":"27848:5:41","nodeType":"VariableDeclaration","scope":9830,"src":"27840:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9818,"name":"uint256","nodeType":"ElementaryTypeName","src":"27840:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27817:37:41"},"returnParameters":{"id":9823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9830,"src":"27878:12:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9821,"name":"bytes","nodeType":"ElementaryTypeName","src":"27878:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27877:14:41"},"scope":9924,"src":"27806:128:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9843,"nodeType":"Block","src":"28551:35:41","statements":[{"expression":{"expression":{"id":9840,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9834,"src":"28568:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28572:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"28568:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"functionReturnParameters":9839,"id":9842,"nodeType":"Return","src":"28561:18:41"}]},"documentation":{"id":9831,"nodeType":"StructuredDocumentation","src":"27940:529:41","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9844,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"28483:6:41","nodeType":"FunctionDefinition","parameters":{"id":9835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9834,"mutability":"mutable","name":"set","nameLocation":"28507:3:41","nodeType":"VariableDeclaration","scope":9844,"src":"28490:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9833,"nodeType":"UserDefinedTypeName","pathNode":{"id":9832,"name":"BytesSet","nameLocations":["28490:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"28490:8:41"},"referencedDeclaration":9611,"src":"28490:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"}],"src":"28489:22:41"},"returnParameters":{"id":9839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9844,"src":"28535:14:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9836,"name":"bytes","nodeType":"ElementaryTypeName","src":"28535:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9837,"nodeType":"ArrayTypeName","src":"28535:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"28534:16:41"},"scope":9924,"src":"28474:112:41","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9922,"nodeType":"Block","src":"29235:387:41","statements":[{"id":9921,"nodeType":"UncheckedBlock","src":"29245:371:41","statements":[{"expression":{"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9858,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"29269:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9861,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"29284:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":9863,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"29296:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}],"id":9862,"name":"length","nodeType":"Identifier","overloadedDeclarations":[8811,9008,9196,9493,9813],"referencedDeclaration":9813,"src":"29289:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BytesSet_$9611_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.BytesSet storage pointer) view returns (uint256)"}},"id":9864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9859,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"29275:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29280:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"29275:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29269:32:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9867,"nodeType":"ExpressionStatement","src":"29269:32:41"},{"expression":{"id":9874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9868,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"29315:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9871,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"29332:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9872,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"29339:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9869,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"29323:4:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$6633_$","typeString":"type(library Math)"}},"id":9870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29328:3:41","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":5339,"src":"29323:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29323:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29315:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9875,"nodeType":"ExpressionStatement","src":"29315:28:41"},{"assignments":[9877],"declarations":[{"constant":false,"id":9877,"mutability":"mutable","name":"len","nameLocation":"29366:3:41","nodeType":"VariableDeclaration","scope":9921,"src":"29358:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9876,"name":"uint256","nodeType":"ElementaryTypeName","src":"29358:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9881,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9878,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"29372:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9879,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"29378:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29372:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29358:25:41"},{"assignments":[9886],"declarations":[{"constant":false,"id":9886,"mutability":"mutable","name":"result","nameLocation":"29412:6:41","nodeType":"VariableDeclaration","scope":9921,"src":"29397:21:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9884,"name":"bytes","nodeType":"ElementaryTypeName","src":"29397:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9885,"nodeType":"ArrayTypeName","src":"29397:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":9892,"initialValue":{"arguments":[{"id":9890,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"29433:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29421:11:41","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":9887,"name":"bytes","nodeType":"ElementaryTypeName","src":"29425:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9888,"nodeType":"ArrayTypeName","src":"29425:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":9891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29421:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29397:40:41"},{"body":{"id":9917,"nodeType":"Block","src":"29485:94:41","statements":[{"expression":{"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9903,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9886,"src":"29503:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":9905,"indexExpression":{"id":9904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"29510:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29503:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"expression":{"id":9908,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"29535:3:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet storage pointer"}},"id":9909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29539:7:41","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":9606,"src":"29535:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9910,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"29548:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"29556:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29548:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9906,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"29515:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Arrays_$4370_$","typeString":"type(library Arrays)"}},"id":9907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29522:12:41","memberName":"unsafeAccess","nodeType":"MemberAccess","referencedDeclaration":4223,"src":"29515:19:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_BytesSlot_$4677_storage_ptr_$","typeString":"function (bytes storage ref[] storage pointer,uint256) pure returns (struct StorageSlot.BytesSlot storage pointer)"}},"id":9913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29515:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$4677_storage_ptr","typeString":"struct StorageSlot.BytesSlot storage pointer"}},"id":9914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29559:5:41","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":4676,"src":"29515:49:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"29503:61:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9916,"nodeType":"ExpressionStatement","src":"29503:61:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"29471:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9898,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"29475:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29471:7:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9918,"initializationExpression":{"assignments":[9894],"declarations":[{"constant":false,"id":9894,"mutability":"mutable","name":"i","nameLocation":"29464:1:41","nodeType":"VariableDeclaration","scope":9918,"src":"29456:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9893,"name":"uint256","nodeType":"ElementaryTypeName","src":"29456:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9896,"initialValue":{"hexValue":"30","id":9895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29468:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29456:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"29480:3:41","subExpression":{"id":9900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"29482:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9902,"nodeType":"ExpressionStatement","src":"29480:3:41"},"nodeType":"ForStatement","src":"29451:128:41"},{"expression":{"id":9919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9886,"src":"29599:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":9857,"id":9920,"nodeType":"Return","src":"29592:13:41"}]}]},"documentation":{"id":9845,"nodeType":"StructuredDocumentation","src":"28592:533:41","text":" @dev Return a slice of the set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":9923,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"29139:6:41","nodeType":"FunctionDefinition","parameters":{"id":9853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9848,"mutability":"mutable","name":"set","nameLocation":"29163:3:41","nodeType":"VariableDeclaration","scope":9923,"src":"29146:20:41","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"},"typeName":{"id":9847,"nodeType":"UserDefinedTypeName","pathNode":{"id":9846,"name":"BytesSet","nameLocations":["29146:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":9611,"src":"29146:8:41"},"referencedDeclaration":9611,"src":"29146:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSet_$9611_storage_ptr","typeString":"struct EnumerableSet.BytesSet"}},"visibility":"internal"},{"constant":false,"id":9850,"mutability":"mutable","name":"start","nameLocation":"29176:5:41","nodeType":"VariableDeclaration","scope":9923,"src":"29168:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9849,"name":"uint256","nodeType":"ElementaryTypeName","src":"29168:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9852,"mutability":"mutable","name":"end","nameLocation":"29191:3:41","nodeType":"VariableDeclaration","scope":9923,"src":"29183:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9851,"name":"uint256","nodeType":"ElementaryTypeName","src":"29183:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29145:50:41"},"returnParameters":{"id":9857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9923,"src":"29219:14:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9854,"name":"bytes","nodeType":"ElementaryTypeName","src":"29219:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9855,"nodeType":"ArrayTypeName","src":"29219:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"29218:16:41"},"scope":9924,"src":"29130:492:41","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":9925,"src":"1586:28038:41","usedErrors":[],"usedEvents":[]}],"src":"205:29420:41"},"id":41},"project/contracts/allocate/DirectAllocation.sol":{"ast":{"absolutePath":"project/contracts/allocate/DirectAllocation.sol","exportedSymbols":{"BaseUpgradeable":[14164],"DirectAllocation":[10062],"ERC165Upgradeable":[3205],"IIssuanceTarget":[1631],"ISendTokens":[1643]},"id":10063,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":9926,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"46:23:42"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":9928,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10063,"sourceUnit":1632,"src":"71:108:42","symbolAliases":[{"foreign":{"id":9927,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"80:15:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/ISendTokens.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/ISendTokens.sol","id":9930,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10063,"sourceUnit":1644,"src":"180:100:42","symbolAliases":[{"foreign":{"id":9929,"name":"ISendTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"189:11:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"project/contracts/common/BaseUpgradeable.sol","file":"../common/BaseUpgradeable.sol","id":9932,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10063,"sourceUnit":14165,"src":"281:64:42","symbolAliases":[{"foreign":{"id":9931,"name":"BaseUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14164,"src":"290:15:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","id":9934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10063,"sourceUnit":3206,"src":"393:114:42","symbolAliases":[{"foreign":{"id":9933,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"402:17:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9936,"name":"BaseUpgradeable","nameLocations":["1223:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"1223:15:42"},"id":9937,"nodeType":"InheritanceSpecifier","src":"1223:15:42"},{"baseName":{"id":9938,"name":"IIssuanceTarget","nameLocations":["1240:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"1240:15:42"},"id":9939,"nodeType":"InheritanceSpecifier","src":"1240:15:42"},{"baseName":{"id":9940,"name":"ISendTokens","nameLocations":["1257:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":1643,"src":"1257:11:42"},"id":9941,"nodeType":"InheritanceSpecifier","src":"1257:11:42"}],"canonicalName":"DirectAllocation","contractDependencies":[],"contractKind":"contract","documentation":{"id":9935,"nodeType":"StructuredDocumentation","src":"532:661:42","text":" @title DirectAllocation\n @author Edge & Node\n @notice A simple contract that receives tokens from the IssuanceAllocator and allows\n an authorized operator to withdraw them.\n @dev This contract is designed to be an allocator-minting target in the IssuanceAllocator.\n The IssuanceAllocator will mint tokens directly to this contract, and the authorized\n operator can send them to individual addresses as needed.\n This contract is pausable by the PAUSE_ROLE. When paused, tokens cannot be sent.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program."},"fullyImplemented":true,"id":10062,"linearizedBaseContracts":[10062,1643,1631,14164,1661,3165,2691,2465,3205,5012,3314,3288,3005,2959],"name":"DirectAllocation","nameLocation":"1203:16:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9942,"nodeType":"StructuredDocumentation","src":"1303:176:42","text":"@notice Thrown when token transfer fails\n @param to The address that the transfer was attempted to\n @param amount The amount of tokens that failed to transfer"},"errorSelector":"6e4cad27","id":9948,"name":"SendTokensFailed","nameLocation":"1490:16:42","nodeType":"ErrorDefinition","parameters":{"id":9947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9944,"mutability":"mutable","name":"to","nameLocation":"1515:2:42","nodeType":"VariableDeclaration","scope":9948,"src":"1507:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9943,"name":"address","nodeType":"ElementaryTypeName","src":"1507:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9946,"mutability":"mutable","name":"amount","nameLocation":"1527:6:42","nodeType":"VariableDeclaration","scope":9948,"src":"1519:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9945,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1506:28:42"},"src":"1484:51:42"},{"anonymous":false,"documentation":{"id":9949,"nodeType":"StructuredDocumentation","src":"1562:143:42","text":"@notice Emitted when tokens are sent\n @param to The address that received the tokens\n @param amount The amount of tokens sent"},"eventSelector":"f18d5a93c62c1d0c761ed52107f11d20bc2071851206b79c4dd3283bd9f006f1","id":9955,"name":"TokensSent","nameLocation":"1716:10:42","nodeType":"EventDefinition","parameters":{"id":9954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9951,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"1743:2:42","nodeType":"VariableDeclaration","scope":9955,"src":"1727:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9950,"name":"address","nodeType":"ElementaryTypeName","src":"1727:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9953,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"1763:6:42","nodeType":"VariableDeclaration","scope":9955,"src":"1747:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1726:44:42"},"src":"1710:61:42"},{"body":{"id":9964,"nodeType":"Block","src":"2256:2:42","statements":[]},"documentation":{"id":9956,"nodeType":"StructuredDocumentation","src":"1876:315:42","text":" @notice Constructor for the DirectAllocation contract\n @dev This contract is upgradeable, but we use the constructor to pass the Graph Token address\n to the base contract.\n @param graphToken Address of the Graph Token contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":9965,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":9961,"name":"graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9958,"src":"2244:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":9962,"kind":"baseConstructorSpecifier","modifierName":{"id":9960,"name":"BaseUpgradeable","nameLocations":["2228:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"2228:15:42"},"nodeType":"ModifierInvocation","src":"2228:27:42"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9958,"mutability":"mutable","name":"graphToken","nameLocation":"2216:10:42","nodeType":"VariableDeclaration","scope":9965,"src":"2208:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9957,"name":"address","nodeType":"ElementaryTypeName","src":"2208:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2207:20:42"},"returnParameters":{"id":9963,"nodeType":"ParameterList","parameters":[],"src":"2256:0:42"},"scope":10062,"src":"2196:62:42","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":9977,"nodeType":"Block","src":"2496:49:42","statements":[{"expression":{"arguments":[{"id":9974,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9968,"src":"2529:8:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9973,"name":"__BaseUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14065,"src":"2506:22:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9976,"nodeType":"ExpressionStatement","src":"2506:32:42"}]},"documentation":{"id":9966,"nodeType":"StructuredDocumentation","src":"2293:131:42","text":" @notice Initialize the DirectAllocation contract\n @param governor Address that will have the GOVERNOR_ROLE"},"functionSelector":"c4d66de8","id":9978,"implemented":true,"kind":"function","modifiers":[{"id":9971,"kind":"modifierInvocation","modifierName":{"id":9970,"name":"initializer","nameLocations":["2484:11:42"],"nodeType":"IdentifierPath","referencedDeclaration":2799,"src":"2484:11:42"},"nodeType":"ModifierInvocation","src":"2484:11:42"}],"name":"initialize","nameLocation":"2438:10:42","nodeType":"FunctionDefinition","parameters":{"id":9969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9968,"mutability":"mutable","name":"governor","nameLocation":"2457:8:42","nodeType":"VariableDeclaration","scope":9978,"src":"2449:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9967,"name":"address","nodeType":"ElementaryTypeName","src":"2449:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2448:18:42"},"returnParameters":{"id":9972,"nodeType":"ParameterList","parameters":[],"src":"2496:0:42"},"scope":10062,"src":"2429:116:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[14163],"body":{"id":10006,"nodeType":"Block","src":"2716:196:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9987,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"2745:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9989,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"2765:15:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":9988,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2760:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2760:21:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":9991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2782:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"2760:33:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2745:48:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9993,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"2809:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9995,"name":"ISendTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"2829:11:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISendTokens_$1643_$","typeString":"type(contract ISendTokens)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ISendTokens_$1643_$","typeString":"type(contract ISendTokens)"}],"id":9994,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2824:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ISendTokens_$1643","typeString":"type(contract ISendTokens)"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2842:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"2824:29:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2809:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2745:108:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":10002,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9981,"src":"2893:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":10000,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2869:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_DirectAllocation_$10062_$","typeString":"type(contract super DirectAllocation)"}},"id":10001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2875:17:42","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":14163,"src":"2869:23:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2745:160:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9986,"id":10005,"nodeType":"Return","src":"2726:179:42"}]},"documentation":{"id":9979,"nodeType":"StructuredDocumentation","src":"2572:48:42","text":" @inheritdoc ERC165Upgradeable"},"functionSelector":"01ffc9a7","id":10007,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2634:17:42","nodeType":"FunctionDefinition","overrides":{"id":9983,"nodeType":"OverrideSpecifier","overrides":[],"src":"2692:8:42"},"parameters":{"id":9982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9981,"mutability":"mutable","name":"interfaceId","nameLocation":"2659:11:42","nodeType":"VariableDeclaration","scope":10007,"src":"2652:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9980,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2652:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2651:20:42"},"returnParameters":{"id":9986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10007,"src":"2710:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9984,"name":"bool","nodeType":"ElementaryTypeName","src":"2710:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2709:6:42"},"scope":10062,"src":"2625:287:42","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1642],"body":{"id":10038,"nodeType":"Block","src":"3102:125:42","statements":[{"expression":{"arguments":[{"arguments":[{"id":10024,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10010,"src":"3141:2:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10025,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"3145:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10022,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"3120:11:42","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3132:8:42","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":3359,"src":"3120:20:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3120:32:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10028,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10010,"src":"3171:2:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10029,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"3175:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10027,"name":"SendTokensFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9948,"src":"3154:16:42","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":10030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3154:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10021,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3112:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3112:71:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10032,"nodeType":"ExpressionStatement","src":"3112:71:42"},{"eventCall":{"arguments":[{"id":10034,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10010,"src":"3209:2:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10012,"src":"3213:6:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10033,"name":"TokensSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"3198:10:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:22:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10037,"nodeType":"EmitStatement","src":"3193:27:42"}]},"documentation":{"id":10008,"nodeType":"StructuredDocumentation","src":"2951:42:42","text":" @inheritdoc ISendTokens"},"functionSelector":"05ab421d","id":10039,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10016,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"3073:13:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10017,"kind":"modifierInvocation","modifierName":{"id":10015,"name":"onlyRole","nameLocations":["3064:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"3064:8:42"},"nodeType":"ModifierInvocation","src":"3064:23:42"},{"id":10019,"kind":"modifierInvocation","modifierName":{"id":10018,"name":"whenNotPaused","nameLocations":["3088:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"3088:13:42"},"nodeType":"ModifierInvocation","src":"3088:13:42"}],"name":"sendTokens","nameLocation":"3007:10:42","nodeType":"FunctionDefinition","overrides":{"id":10014,"nodeType":"OverrideSpecifier","overrides":[],"src":"3055:8:42"},"parameters":{"id":10013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10010,"mutability":"mutable","name":"to","nameLocation":"3026:2:42","nodeType":"VariableDeclaration","scope":10039,"src":"3018:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10009,"name":"address","nodeType":"ElementaryTypeName","src":"3018:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10012,"mutability":"mutable","name":"amount","nameLocation":"3038:6:42","nodeType":"VariableDeclaration","scope":10039,"src":"3030:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3030:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3017:28:42"},"returnParameters":{"id":10020,"nodeType":"ParameterList","parameters":[],"src":"3102:0:42"},"scope":10062,"src":"2998:229:42","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1624],"body":{"id":10049,"nodeType":"Block","src":"3539:70:42","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10044,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"3554:15:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":10046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3570:30:42","memberName":"BeforeIssuanceAllocationChange","nodeType":"MemberAccess","referencedDeclaration":1620,"src":"3554:46:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10048,"nodeType":"EmitStatement","src":"3549:53:42"}]},"documentation":{"id":10040,"nodeType":"StructuredDocumentation","src":"3233:233:42","text":" @dev For DirectAllocation, this is a no-op since we don't need to perform any calculations\n before an allocation change. We simply receive tokens from the IssuanceAllocator.\n @inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":10050,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"3480:30:42","nodeType":"FunctionDefinition","overrides":{"id":10042,"nodeType":"OverrideSpecifier","overrides":[],"src":"3530:8:42"},"parameters":{"id":10041,"nodeType":"ParameterList","parameters":[],"src":"3510:2:42"},"returnParameters":{"id":10043,"nodeType":"ParameterList","parameters":[],"src":"3539:0:42"},"scope":10062,"src":"3471:138:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":10060,"nodeType":"Block","src":"3846:2:42","statements":[]},"documentation":{"id":10051,"nodeType":"StructuredDocumentation","src":"3615:119:42","text":" @dev No-op for DirectAllocation; issuanceAllocator is not stored.\n @inheritdoc IIssuanceTarget"},"functionSelector":"931c0ac1","id":10061,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10057,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"3831:13:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10058,"kind":"modifierInvocation","modifierName":{"id":10056,"name":"onlyRole","nameLocations":["3822:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"3822:8:42"},"nodeType":"ModifierInvocation","src":"3822:23:42"}],"name":"setIssuanceAllocator","nameLocation":"3748:20:42","nodeType":"FunctionDefinition","overrides":{"id":10055,"nodeType":"OverrideSpecifier","overrides":[],"src":"3813:8:42"},"parameters":{"id":10054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10053,"mutability":"mutable","name":"issuanceAllocator","nameLocation":"3777:17:42","nodeType":"VariableDeclaration","scope":10061,"src":"3769:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10052,"name":"address","nodeType":"ElementaryTypeName","src":"3769:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3768:27:42"},"returnParameters":{"id":10059,"nodeType":"ParameterList","parameters":[],"src":"3846:0:42"},"scope":10062,"src":"3739:109:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"scope":10063,"src":"1194:2656:42","usedErrors":[2708,2711,3044,3047,3215,3218,9948,14018,14021],"usedEvents":[1617,1620,2716,3036,3041,3227,3236,3245,9955]}],"src":"46:3805:42"},"id":42},"project/contracts/allocate/IndexingAgreementManager.sol":{"ast":{"absolutePath":"project/contracts/allocate/IndexingAgreementManager.sol","exportedSymbols":{"BaseUpgradeable":[14164],"ERC165Upgradeable":[3205],"EnumerableSet":[9924],"IContractApprover":[291],"IIndexingAgreementManager":[1338],"IIssuanceTarget":[1631],"IPaymentsEscrow":[606],"IRecurringCollector":[1076],"ISubgraphService":[2020],"IndexingAgreementManager":[11715]},"id":11716,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":10064,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"46:23:43"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":10066,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":9925,"src":"71:88:43","symbolAliases":[{"foreign":{"id":10065,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9924,"src":"80:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":10068,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":1632,"src":"161:108:43","symbolAliases":[{"foreign":{"id":10067,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"170:15:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IContractApprover.sol","file":"@graphprotocol/interfaces/contracts/horizon/IContractApprover.sol","id":10070,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":292,"src":"270:102:43","symbolAliases":[{"foreign":{"id":10069,"name":"IContractApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"279:17:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIndexingAgreementManager.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIndexingAgreementManager.sol","id":10072,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":1339,"src":"373:128:43","symbolAliases":[{"foreign":{"id":10071,"name":"IIndexingAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"382:25:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IPaymentsEscrow.sol","file":"@graphprotocol/interfaces/contracts/horizon/IPaymentsEscrow.sol","id":10074,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":607,"src":"502:98:43","symbolAliases":[{"foreign":{"id":10073,"name":"IPaymentsEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"511:15:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/horizon/IRecurringCollector.sol","file":"@graphprotocol/interfaces/contracts/horizon/IRecurringCollector.sol","id":10076,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":1077,"src":"601:106:43","symbolAliases":[{"foreign":{"id":10075,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"610:19:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/subgraph-service/ISubgraphService.sol","file":"@graphprotocol/interfaces/contracts/subgraph-service/ISubgraphService.sol","id":10078,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":2021,"src":"708:109:43","symbolAliases":[{"foreign":{"id":10077,"name":"ISubgraphService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"717:16:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"project/contracts/common/BaseUpgradeable.sol","file":"../common/BaseUpgradeable.sol","id":10080,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":14165,"src":"819:64:43","symbolAliases":[{"foreign":{"id":10079,"name":"BaseUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14164,"src":"828:15:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","id":10082,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11716,"sourceUnit":3206,"src":"931:114:43","symbolAliases":[{"foreign":{"id":10081,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"940:17:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10084,"name":"BaseUpgradeable","nameLocations":["1888:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"1888:15:43"},"id":10085,"nodeType":"InheritanceSpecifier","src":"1888:15:43"},{"baseName":{"id":10086,"name":"IIssuanceTarget","nameLocations":["1905:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"1905:15:43"},"id":10087,"nodeType":"InheritanceSpecifier","src":"1905:15:43"},{"baseName":{"id":10088,"name":"IContractApprover","nameLocations":["1922:17:43"],"nodeType":"IdentifierPath","referencedDeclaration":291,"src":"1922:17:43"},"id":10089,"nodeType":"InheritanceSpecifier","src":"1922:17:43"},{"baseName":{"id":10090,"name":"IIndexingAgreementManager","nameLocations":["1941:25:43"],"nodeType":"IdentifierPath","referencedDeclaration":1338,"src":"1941:25:43"},"id":10091,"nodeType":"InheritanceSpecifier","src":"1941:25:43"}],"canonicalName":"IndexingAgreementManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":10083,"nodeType":"StructuredDocumentation","src":"1070:780:43","text":" @title IndexingAgreementManager\n @author Edge & Node\n @notice Manages escrow funding for RCAs (Recurring Collection Agreements) using\n issuance-allocated tokens. This contract:\n 1. Receives minted GRT from IssuanceAllocator (implements IIssuanceTarget)\n 2. Authorizes RCA acceptance via contract callback (implements IContractApprover)\n 3. Tracks max-next-claim per agreement, funds PaymentsEscrow to cover maximums\n One escrow per (this contract, RecurringCollector, indexer) covers all managed\n RCAs for that indexer. Other participants can independently use RCAs via the\n standard ECDSA-signed flow.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program."},"fullyImplemented":true,"id":11715,"linearizedBaseContracts":[11715,1338,291,1631,14164,1661,3165,2691,2465,3205,5012,3314,3288,3005,2959],"name":"IndexingAgreementManager","nameLocation":"1860:24:43","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10095,"libraryName":{"id":10092,"name":"EnumerableSet","nameLocations":["1979:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":9924,"src":"1979:13:43"},"nodeType":"UsingForDirective","src":"1973:49:43","typeName":{"id":10094,"nodeType":"UserDefinedTypeName","pathNode":{"id":10093,"name":"EnumerableSet.Bytes32Set","nameLocations":["1997:13:43","2011:10:43"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"1997:24:43"},"referencedDeclaration":8729,"src":"1997:24:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"constant":false,"documentation":{"id":10096,"nodeType":"StructuredDocumentation","src":"2053:105:43","text":"@notice The PaymentsEscrow contract\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"18d620f8","id":10099,"mutability":"immutable","name":"PAYMENTS_ESCROW","nameLocation":"2196:15:43","nodeType":"VariableDeclaration","scope":11715,"src":"2163:48:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"},"typeName":{"id":10098,"nodeType":"UserDefinedTypeName","pathNode":{"id":10097,"name":"IPaymentsEscrow","nameLocations":["2163:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":606,"src":"2163:15:43"},"referencedDeclaration":606,"src":"2163:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"visibility":"public"},{"constant":false,"documentation":{"id":10100,"nodeType":"StructuredDocumentation","src":"2218:109:43","text":"@notice The RecurringCollector contract\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"a49c2e57","id":10103,"mutability":"immutable","name":"RECURRING_COLLECTOR","nameLocation":"2369:19:43","nodeType":"VariableDeclaration","scope":11715,"src":"2332:56:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"},"typeName":{"id":10102,"nodeType":"UserDefinedTypeName","pathNode":{"id":10101,"name":"IRecurringCollector","nameLocations":["2332:19:43"],"nodeType":"IdentifierPath","referencedDeclaration":1076,"src":"2332:19:43"},"referencedDeclaration":1076,"src":"2332:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"visibility":"public"},{"canonicalName":"IndexingAgreementManager.IndexingAgreementManagerStorage","documentation":{"id":10104,"nodeType":"StructuredDocumentation","src":"2428:92:43","text":"@custom:storage-location erc7201:graphprotocol.issuance.storage.IndexingAgreementManager"},"id":10132,"members":[{"constant":false,"id":10109,"mutability":"mutable","name":"authorizedHashes","nameLocation":"2723:16:43","nodeType":"VariableDeclaration","scope":10132,"src":"2681:58:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"},"typeName":{"id":10108,"keyName":"agreementHash","keyNameLocation":"2697:13:43","keyType":{"id":10106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2689:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2681:41:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10107,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2714:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}},"visibility":"internal"},{"constant":false,"id":10115,"mutability":"mutable","name":"agreements","nameLocation":"2843:10:43","nodeType":"VariableDeclaration","scope":10132,"src":"2797:56:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo)"},"typeName":{"id":10114,"keyName":"agreementId","keyNameLocation":"2813:11:43","keyType":{"id":10111,"name":"bytes16","nodeType":"ElementaryTypeName","src":"2805:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Mapping","src":"2797:45:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10113,"nodeType":"UserDefinedTypeName","pathNode":{"id":10112,"name":"AgreementInfo","nameLocations":["2828:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"2828:13:43"},"referencedDeclaration":1101,"src":"2828:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}}},"visibility":"internal"},{"constant":false,"id":10120,"mutability":"mutable","name":"requiredEscrow","nameLocation":"2970:14:43","nodeType":"VariableDeclaration","scope":10132,"src":"2934:50:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":10119,"keyName":"indexer","keyNameLocation":"2950:7:43","keyType":{"id":10117,"name":"address","nodeType":"ElementaryTypeName","src":"2942:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2934:35:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10118,"name":"uint256","nodeType":"ElementaryTypeName","src":"2961:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":10126,"mutability":"mutable","name":"indexerAgreementIds","nameLocation":"3138:19:43","nodeType":"VariableDeclaration","scope":10132,"src":"3085:72:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set)"},"typeName":{"id":10125,"keyName":"indexer","keyNameLocation":"3101:7:43","keyType":{"id":10122,"name":"address","nodeType":"ElementaryTypeName","src":"3093:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3085:52:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10124,"nodeType":"UserDefinedTypeName","pathNode":{"id":10123,"name":"EnumerableSet.Bytes32Set","nameLocations":["3112:13:43","3126:10:43"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"3112:24:43"},"referencedDeclaration":8729,"src":"3112:24:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},"visibility":"internal"},{"constant":false,"id":10131,"mutability":"mutable","name":"thawing","nameLocation":"3278:7:43","nodeType":"VariableDeclaration","scope":10132,"src":"3245:40:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":10130,"keyName":"indexer","keyNameLocation":"3261:7:43","keyType":{"id":10128,"name":"address","nodeType":"ElementaryTypeName","src":"3253:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3245:32:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":10129,"name":"bool","nodeType":"ElementaryTypeName","src":"3272:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"}],"name":"IndexingAgreementManagerStorage","nameLocation":"2532:31:43","nodeType":"StructDefinition","scope":11715,"src":"2525:767:43","visibility":"public"},{"constant":true,"id":10135,"mutability":"constant","name":"INDEXING_AGREEMENT_MANAGER_STORAGE_LOCATION","nameLocation":"3518:43:43","nodeType":"VariableDeclaration","scope":11715,"src":"3493:145:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3493:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834373962613934666166326664366361626637383933363233626661376135353263313065393565313564653130626335386631653538663262623866623030","id":10134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3572:66:43","typeDescriptions":{"typeIdentifier":"t_rational_32389242087870288333728955785954655323748091624632057641829476858502560938752_by_1","typeString":"int_const 3238...(69 digits omitted)...8752"},"value":"0x479ba94faf2fd6cabf7893623bfa7a552c10e95e15de10bc58f1e58f2bb8fb00"},"visibility":"private"},{"body":{"id":10160,"nodeType":"Block","src":"4125:137:43","statements":[{"expression":{"id":10152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10148,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"4135:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10150,"name":"paymentsEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"4169:14:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10149,"name":"IPaymentsEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"4153:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPaymentsEscrow_$606_$","typeString":"type(contract IPaymentsEscrow)"}},"id":10151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4153:31:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"src":"4135:49:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":10153,"nodeType":"ExpressionStatement","src":"4135:49:43"},{"expression":{"id":10158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10154,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"4194:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10156,"name":"recurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10142,"src":"4236:18:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10155,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"4216:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":10157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4216:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"src":"4194:61:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10159,"nodeType":"ExpressionStatement","src":"4194:61:43"}]},"documentation":{"id":10136,"nodeType":"StructuredDocumentation","src":"3671:337:43","text":" @notice Constructor for the IndexingAgreementManager contract\n @param graphToken Address of the Graph Token contract\n @param paymentsEscrow Address of the PaymentsEscrow contract\n @param recurringCollector Address of the RecurringCollector contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":10161,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10145,"name":"graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"4113:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":10146,"kind":"baseConstructorSpecifier","modifierName":{"id":10144,"name":"BaseUpgradeable","nameLocations":["4097:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"4097:15:43"},"nodeType":"ModifierInvocation","src":"4097:27:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10138,"mutability":"mutable","name":"graphToken","nameLocation":"4033:10:43","nodeType":"VariableDeclaration","scope":10161,"src":"4025:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10137,"name":"address","nodeType":"ElementaryTypeName","src":"4025:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10140,"mutability":"mutable","name":"paymentsEscrow","nameLocation":"4053:14:43","nodeType":"VariableDeclaration","scope":10161,"src":"4045:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10139,"name":"address","nodeType":"ElementaryTypeName","src":"4045:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10142,"mutability":"mutable","name":"recurringCollector","nameLocation":"4077:18:43","nodeType":"VariableDeclaration","scope":10161,"src":"4069:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10141,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4024:72:43"},"returnParameters":{"id":10147,"nodeType":"ParameterList","parameters":[],"src":"4125:0:43"},"scope":11715,"src":"4013:249:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":10173,"nodeType":"Block","src":"4508:49:43","statements":[{"expression":{"arguments":[{"id":10170,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"4541:8:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10169,"name":"__BaseUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14065,"src":"4518:22:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":10171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4518:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10172,"nodeType":"ExpressionStatement","src":"4518:32:43"}]},"documentation":{"id":10162,"nodeType":"StructuredDocumentation","src":"4297:139:43","text":" @notice Initialize the IndexingAgreementManager contract\n @param governor Address that will have the GOVERNOR_ROLE"},"functionSelector":"c4d66de8","id":10174,"implemented":true,"kind":"function","modifiers":[{"id":10167,"kind":"modifierInvocation","modifierName":{"id":10166,"name":"initializer","nameLocations":["4496:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":2799,"src":"4496:11:43"},"nodeType":"ModifierInvocation","src":"4496:11:43"}],"name":"initialize","nameLocation":"4450:10:43","nodeType":"FunctionDefinition","parameters":{"id":10165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10164,"mutability":"mutable","name":"governor","nameLocation":"4469:8:43","nodeType":"VariableDeclaration","scope":10174,"src":"4461:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10163,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4460:18:43"},"returnParameters":{"id":10168,"nodeType":"ParameterList","parameters":[],"src":"4508:0:43"},"scope":11715,"src":"4441:116:43","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[14163],"body":{"id":10209,"nodeType":"Block","src":"4713:276:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10183,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"4742:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10185,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"4762:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":10184,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4757:4:43","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4757:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4779:11:43","memberName":"interfaceId","nodeType":"MemberAccess","src":"4757:33:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4742:48:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10189,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"4806:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10191,"name":"IContractApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4826:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IContractApprover_$291_$","typeString":"type(contract IContractApprover)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IContractApprover_$291_$","typeString":"type(contract IContractApprover)"}],"id":10190,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4821:4:43","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4821:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IContractApprover_$291","typeString":"type(contract IContractApprover)"}},"id":10193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4845:11:43","memberName":"interfaceId","nodeType":"MemberAccess","src":"4821:35:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4806:50:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4742:114:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10196,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"4872:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10198,"name":"IIndexingAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"4892:25:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIndexingAgreementManager_$1338_$","typeString":"type(contract IIndexingAgreementManager)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIndexingAgreementManager_$1338_$","typeString":"type(contract IIndexingAgreementManager)"}],"id":10197,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4887:4:43","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4887:31:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIndexingAgreementManager_$1338","typeString":"type(contract IIndexingAgreementManager)"}},"id":10200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4919:11:43","memberName":"interfaceId","nodeType":"MemberAccess","src":"4887:43:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4872:58:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4742:188:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":10205,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10177,"src":"4970:11:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":10203,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4946:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_IndexingAgreementManager_$11715_$","typeString":"type(contract super IndexingAgreementManager)"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4952:17:43","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":14163,"src":"4946:23:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":10206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:36:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4742:240:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10182,"id":10208,"nodeType":"Return","src":"4723:259:43"}]},"documentation":{"id":10175,"nodeType":"StructuredDocumentation","src":"4584:33:43","text":"@inheritdoc ERC165Upgradeable"},"functionSelector":"01ffc9a7","id":10210,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4631:17:43","nodeType":"FunctionDefinition","overrides":{"id":10179,"nodeType":"OverrideSpecifier","overrides":[],"src":"4689:8:43"},"parameters":{"id":10178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10177,"mutability":"mutable","name":"interfaceId","nameLocation":"4656:11:43","nodeType":"VariableDeclaration","scope":10210,"src":"4649:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10176,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4649:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4648:20:43"},"returnParameters":{"id":10182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10210,"src":"4707:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10180,"name":"bool","nodeType":"ElementaryTypeName","src":"4707:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4706:6:43"},"scope":11715,"src":"4622:367:43","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1624],"body":{"id":10220,"nodeType":"Block","src":"5129:70:43","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10215,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"5144:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":10217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5160:30:43","memberName":"BeforeIssuanceAllocationChange","nodeType":"MemberAccess","referencedDeclaration":1620,"src":"5144:46:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":10218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5144:48:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10219,"nodeType":"EmitStatement","src":"5139:53:43"}]},"documentation":{"id":10211,"nodeType":"StructuredDocumentation","src":"5025:31:43","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":10221,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"5070:30:43","nodeType":"FunctionDefinition","overrides":{"id":10213,"nodeType":"OverrideSpecifier","overrides":[],"src":"5120:8:43"},"parameters":{"id":10212,"nodeType":"ParameterList","parameters":[],"src":"5100:2:43"},"returnParameters":{"id":10214,"nodeType":"ParameterList","parameters":[],"src":"5129:0:43"},"scope":11715,"src":"5061:138:43","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":10231,"nodeType":"Block","src":"5466:2:43","statements":[]},"documentation":{"id":10222,"nodeType":"StructuredDocumentation","src":"5205:143:43","text":"@inheritdoc IIssuanceTarget\n @dev No-op: IndexingAgreementManager receives tokens via transfer, does not need the allocator address."},"functionSelector":"931c0ac1","id":10232,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10228,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5451:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10229,"kind":"modifierInvocation","modifierName":{"id":10227,"name":"onlyRole","nameLocations":["5442:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"5442:8:43"},"nodeType":"ModifierInvocation","src":"5442:23:43"}],"name":"setIssuanceAllocator","nameLocation":"5362:20:43","nodeType":"FunctionDefinition","overrides":{"id":10226,"nodeType":"OverrideSpecifier","overrides":[],"src":"5433:8:43"},"parameters":{"id":10225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10232,"src":"5383:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10223,"name":"address","nodeType":"ElementaryTypeName","src":"5383:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5382:33:43"},"returnParameters":{"id":10230,"nodeType":"ParameterList","parameters":[],"src":"5466:0:43"},"scope":11715,"src":"5353:115:43","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[290],"body":{"id":10276,"nodeType":"Block","src":"5638:381:43","statements":[{"assignments":[10243],"declarations":[{"constant":false,"id":10243,"mutability":"mutable","name":"$","nameLocation":"5688:1:43","nodeType":"VariableDeclaration","scope":10276,"src":"5648:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10242,"nodeType":"UserDefinedTypeName","pathNode":{"id":10241,"name":"IndexingAgreementManagerStorage","nameLocations":["5648:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"5648:31:43"},"referencedDeclaration":10132,"src":"5648:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10246,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10244,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"5692:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5692:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5648:57:43"},{"assignments":[10248],"declarations":[{"constant":false,"id":10248,"mutability":"mutable","name":"agreementId","nameLocation":"5723:11:43","nodeType":"VariableDeclaration","scope":10276,"src":"5715:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10247,"name":"bytes16","nodeType":"ElementaryTypeName","src":"5715:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"id":10253,"initialValue":{"baseExpression":{"expression":{"id":10249,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10243,"src":"5737:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5739:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"5737:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10252,"indexExpression":{"id":10251,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10235,"src":"5756:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5737:33:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"VariableDeclarationStatement","src":"5715:55:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"id":10260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10255,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10248,"src":"5801:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5824:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5816:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":10256,"name":"bytes16","nodeType":"ElementaryTypeName","src":"5816:7:43","typeDescriptions":{}}},"id":10259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"5801:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"expression":{"baseExpression":{"expression":{"id":10261,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10243,"src":"5830:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5832:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"5830:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10264,"indexExpression":{"id":10263,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10248,"src":"5843:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5830:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":10265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5856:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"5830:32:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5801:61:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10268,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10235,"src":"5923:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10267,"name":"IndexingAgreementManagerAgreementNotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"5876:46:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5876:61:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5780:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5780:167:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10271,"nodeType":"ExpressionStatement","src":"5780:167:43"},{"expression":{"expression":{"expression":{"id":10272,"name":"IContractApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5964:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IContractApprover_$291_$","typeString":"type(contract IContractApprover)"}},"id":10273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5982:21:43","memberName":"isAuthorizedAgreement","nodeType":"MemberAccess","referencedDeclaration":290,"src":"5964:39:43","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$returns$_t_bytes4_$","typeString":"function IContractApprover.isAuthorizedAgreement(bytes32) view returns (bytes4)"}},"id":10274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6004:8:43","memberName":"selector","nodeType":"MemberAccess","src":"5964:48:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":10240,"id":10275,"nodeType":"Return","src":"5957:55:43"}]},"documentation":{"id":10233,"nodeType":"StructuredDocumentation","src":"5506:33:43","text":"@inheritdoc IContractApprover"},"functionSelector":"8d202ecf","id":10277,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorizedAgreement","nameLocation":"5553:21:43","nodeType":"FunctionDefinition","overrides":{"id":10237,"nodeType":"OverrideSpecifier","overrides":[],"src":"5612:8:43"},"parameters":{"id":10236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10235,"mutability":"mutable","name":"agreementHash","nameLocation":"5583:13:43","nodeType":"VariableDeclaration","scope":10277,"src":"5575:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5575:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5574:23:43"},"returnParameters":{"id":10240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10277,"src":"5630:6:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5630:6:43","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5629:8:43"},"scope":11715,"src":"5544:475:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1235],"body":{"id":10481,"nodeType":"Block","src":"6305:2177:43","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10292,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6323:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6327:5:43","memberName":"payer","nodeType":"MemberAccess","referencedDeclaration":650,"src":"6323:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":10296,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6344:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":10295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6336:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10294,"name":"address","nodeType":"ElementaryTypeName","src":"6336:7:43","typeDescriptions":{}}},"id":10297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6336:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6323:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":10300,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6389:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6393:5:43","memberName":"payer","nodeType":"MemberAccess","referencedDeclaration":650,"src":"6389:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":10304,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6408:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":10303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6400:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10302,"name":"address","nodeType":"ElementaryTypeName","src":"6400:7:43","typeDescriptions":{}}},"id":10305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6400:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10299,"name":"IndexingAgreementManagerPayerMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1189,"src":"6351:37:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":10306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:63:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6315:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6315:100:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10308,"nodeType":"ExpressionStatement","src":"6315:100:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10310,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6433:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6437:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"6433:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6464:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10312,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:43","typeDescriptions":{}}},"id":10315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6456:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6433:33:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"7365727669636550726f7669646572","id":10318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6508:17:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf11bff71af15da7482996df6846dd3a2544b476a64e53a7e979199a935e0b19","typeString":"literal_string \"serviceProvider\""},"value":"serviceProvider"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf11bff71af15da7482996df6846dd3a2544b476a64e53a7e979199a935e0b19","typeString":"literal_string \"serviceProvider\""}],"id":10317,"name":"IndexingAgreementManagerInvalidRCAField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"6468:39:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":10319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6468:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6425:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:102:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10321,"nodeType":"ExpressionStatement","src":"6425:102:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10323,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6545:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6549:11:43","memberName":"dataService","nodeType":"MemberAccess","referencedDeclaration":652,"src":"6545:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6572:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6564:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10325,"name":"address","nodeType":"ElementaryTypeName","src":"6564:7:43","typeDescriptions":{}}},"id":10328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6564:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6545:29:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"6461746153657276696365","id":10331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6616:13:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_7864e48954fbe5e2e3b64b29c6101b6ce766b12a602dd7ce192a58f6b5a6e715","typeString":"literal_string \"dataService\""},"value":"dataService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7864e48954fbe5e2e3b64b29c6101b6ce766b12a602dd7ce192a58f6b5a6e715","typeString":"literal_string \"dataService\""}],"id":10330,"name":"IndexingAgreementManagerInvalidRCAField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"6576:39:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":10332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6576:54:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6537:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6537:94:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10334,"nodeType":"ExpressionStatement","src":"6537:94:43"},{"assignments":[10337],"declarations":[{"constant":false,"id":10337,"mutability":"mutable","name":"$","nameLocation":"6682:1:43","nodeType":"VariableDeclaration","scope":10481,"src":"6642:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10336,"nodeType":"UserDefinedTypeName","pathNode":{"id":10335,"name":"IndexingAgreementManagerStorage","nameLocations":["6642:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"6642:31:43"},"referencedDeclaration":10132,"src":"6642:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10338,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"6686:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6686:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6642:57:43"},{"expression":{"id":10355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10341,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"6710:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":10344,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6777:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6781:5:43","memberName":"payer","nodeType":"MemberAccess","referencedDeclaration":650,"src":"6777:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":10346,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6800:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6804:11:43","memberName":"dataService","nodeType":"MemberAccess","referencedDeclaration":652,"src":"6800:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":10348,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6829:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6833:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"6829:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":10350,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6862:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6866:8:43","memberName":"deadline","nodeType":"MemberAccess","referencedDeclaration":646,"src":"6862:12:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":10352,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"6888:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6892:5:43","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":664,"src":"6888:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10342,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"6724:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6744:19:43","memberName":"generateAgreementId","nodeType":"MemberAccess","referencedDeclaration":1075,"src":"6724:39:43","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_address_$_t_uint64_$_t_uint256_$returns$_t_bytes16_$","typeString":"function (address,address,address,uint64,uint256) pure external returns (bytes16)"}},"id":10354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6724:183:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"6710:197:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10356,"nodeType":"ExpressionStatement","src":"6710:197:43"},{"expression":{"arguments":[{"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6926:33:43","subExpression":{"expression":{"baseExpression":{"expression":{"id":10358,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"6927:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6929:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"6927:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10361,"indexExpression":{"id":10360,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"6940:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6927:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":10362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6953:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"6927:32:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10365,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"7009:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10364,"name":"IndexingAgreementManagerAgreementAlreadyOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"6961:47:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6961:60:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6918:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6918:104:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10368,"nodeType":"ExpressionStatement","src":"6918:104:43"},{"condition":{"baseExpression":{"expression":{"id":10369,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"7129:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7131:7:43","memberName":"thawing","nodeType":"MemberAccess","referencedDeclaration":10131,"src":"7129:9:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":10373,"indexExpression":{"expression":{"id":10371,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7139:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7143:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"7139:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7129:30:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10395,"nodeType":"IfStatement","src":"7125:190:43","trueBody":{"id":10394,"nodeType":"Block","src":"7161:154:43","statements":[{"expression":{"arguments":[{"arguments":[{"id":10379,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"7210:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":10378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7202:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10377,"name":"address","nodeType":"ElementaryTypeName","src":"7202:7:43","typeDescriptions":{}}},"id":10380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7202:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":10381,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7232:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7236:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"7232:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10374,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"7175:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":10376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7191:10:43","memberName":"cancelThaw","nodeType":"MemberAccess","referencedDeclaration":566,"src":"7175:26:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7175:77:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10384,"nodeType":"ExpressionStatement","src":"7175:77:43"},{"expression":{"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10385,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"7266:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7268:7:43","memberName":"thawing","nodeType":"MemberAccess","referencedDeclaration":10131,"src":"7266:9:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":10390,"indexExpression":{"expression":{"id":10387,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7276:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7280:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"7276:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7266:30:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":10391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7299:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7266:38:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10393,"nodeType":"ExpressionStatement","src":"7266:38:43"}]}},{"assignments":[10397],"declarations":[{"constant":false,"id":10397,"mutability":"mutable","name":"maxNextClaim","nameLocation":"7432:12:43","nodeType":"VariableDeclaration","scope":10481,"src":"7424:20:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10396,"name":"uint256","nodeType":"ElementaryTypeName","src":"7424:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10406,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10398,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7447:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7451:25:43","memberName":"maxOngoingTokensPerSecond","nodeType":"MemberAccess","referencedDeclaration":658,"src":"7447:29:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":10400,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7479:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7483:23:43","memberName":"maxSecondsPerCollection","nodeType":"MemberAccess","referencedDeclaration":662,"src":"7479:27:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7447:59:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":10403,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7509:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7513:16:43","memberName":"maxInitialTokens","nodeType":"MemberAccess","referencedDeclaration":656,"src":"7509:20:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7447:82:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7424:105:43"},{"assignments":[10408],"declarations":[{"constant":false,"id":10408,"mutability":"mutable","name":"agreementHash","nameLocation":"7623:13:43","nodeType":"VariableDeclaration","scope":10481,"src":"7615:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10413,"initialValue":{"arguments":[{"id":10411,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7667:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}],"expression":{"id":10409,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"7639:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7659:7:43","memberName":"hashRCA","nodeType":"MemberAccess","referencedDeclaration":1001,"src":"7639:27:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_RecurringCollectionAgreement_$667_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRecurringCollector.RecurringCollectionAgreement memory) view external returns (bytes32)"}},"id":10412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7639:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7615:56:43"},{"expression":{"id":10420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10414,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"7681:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7683:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"7681:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10418,"indexExpression":{"id":10416,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"7700:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7681:33:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10419,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"7717:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"7681:47:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10421,"nodeType":"ExpressionStatement","src":"7681:47:43"},{"expression":{"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10422,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"7780:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7782:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"7780:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10426,"indexExpression":{"id":10424,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"7793:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7780:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":10428,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7845:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7849:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"7845:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":10430,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7888:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7892:8:43","memberName":"deadline","nodeType":"MemberAccess","referencedDeclaration":646,"src":"7888:12:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"74727565","id":10432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7922:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":10433,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"7953:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7957:11:43","memberName":"dataService","nodeType":"MemberAccess","referencedDeclaration":652,"src":"7953:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":10435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8002:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":10436,"name":"maxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"8031:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":10437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8084:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":10438,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"8114:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":10441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8168:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8160:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8160:7:43","typeDescriptions":{}}},"id":10442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10427,"name":"AgreementInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"7808:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AgreementInfo_$1101_storage_ptr_$","typeString":"type(struct IIndexingAgreementManager.AgreementInfo storage pointer)"}},"id":10443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7836:7:43","7878:8:43","7914:6:43","7940:11:43","7982:18:43","8017:12:43","8057:25:43","8099:13:43","8141:17:43"],"names":["indexer","deadline","exists","dataService","pendingUpdateNonce","maxNextClaim","pendingUpdateMaxNextClaim","agreementHash","pendingUpdateHash"],"nodeType":"FunctionCall","src":"7808:373:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_memory_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo memory"}},"src":"7780:401:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":10445,"nodeType":"ExpressionStatement","src":"7780:401:43"},{"expression":{"arguments":[{"arguments":[{"id":10455,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"8246:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8238:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8238:7:43","typeDescriptions":{}}},"id":10456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8238:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"expression":{"id":10446,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"8191:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8193:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"8191:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":10451,"indexExpression":{"expression":{"id":10448,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"8213:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8217:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"8213:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8191:42:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":10452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8234:3:43","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":8747,"src":"8191:46:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$8729_storage_ptr_$_t_bytes32_$returns$_t_bool_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":10457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8191:68:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10458,"nodeType":"ExpressionStatement","src":"8191:68:43"},{"expression":{"id":10466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10459,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"8269:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8271:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"8269:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10464,"indexExpression":{"expression":{"id":10461,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"8286:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8290:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"8286:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8269:37:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10465,"name":"maxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"8310:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8269:53:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10467,"nodeType":"ExpressionStatement","src":"8269:53:43"},{"expression":{"arguments":[{"id":10469,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"8372:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"expression":{"id":10470,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"8375:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8379:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"8375:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10468,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"8360:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":10472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8360:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10473,"nodeType":"ExpressionStatement","src":"8360:35:43"},{"eventCall":{"arguments":[{"id":10475,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"8428:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"expression":{"id":10476,"name":"rca","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10281,"src":"8441:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement calldata"}},"id":10477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8445:15:43","memberName":"serviceProvider","nodeType":"MemberAccess","referencedDeclaration":654,"src":"8441:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10478,"name":"maxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"8462:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10474,"name":"AgreementOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"8411:16:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes16,address,uint256)"}},"id":10479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8411:64:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10480,"nodeType":"EmitStatement","src":"8406:69:43"}]},"documentation":{"id":10278,"nodeType":"StructuredDocumentation","src":"6081:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"1f19ce54","id":10482,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10284,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"6246:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10285,"kind":"modifierInvocation","modifierName":{"id":10283,"name":"onlyRole","nameLocations":["6237:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"6237:8:43"},"nodeType":"ModifierInvocation","src":"6237:23:43"},{"id":10287,"kind":"modifierInvocation","modifierName":{"id":10286,"name":"whenNotPaused","nameLocations":["6261:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"6261:13:43"},"nodeType":"ModifierInvocation","src":"6261:13:43"}],"name":"offerAgreement","nameLocation":"6136:14:43","nodeType":"FunctionDefinition","parameters":{"id":10282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10281,"mutability":"mutable","name":"rca","nameLocation":"6218:3:43","nodeType":"VariableDeclaration","scope":10482,"src":"6160:61:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"},"typeName":{"id":10280,"nodeType":"UserDefinedTypeName","pathNode":{"id":10279,"name":"IRecurringCollector.RecurringCollectionAgreement","nameLocations":["6160:19:43","6180:28:43"],"nodeType":"IdentifierPath","referencedDeclaration":667,"src":"6160:48:43"},"referencedDeclaration":667,"src":"6160:48:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreement_$667_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreement"}},"visibility":"internal"}],"src":"6150:77:43"},"returnParameters":{"id":10290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10289,"mutability":"mutable","name":"agreementId","nameLocation":"6292:11:43","nodeType":"VariableDeclaration","scope":10482,"src":"6284:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10288,"name":"bytes16","nodeType":"ElementaryTypeName","src":"6284:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"6283:21:43"},"scope":11715,"src":"6127:2355:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1244],"body":{"id":10616,"nodeType":"Block","src":"8725:1423:43","statements":[{"expression":{"id":10499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10496,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"8735:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10497,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"8749:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8754:11:43","memberName":"agreementId","nodeType":"MemberAccess","referencedDeclaration":677,"src":"8749:16:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"8735:30:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10500,"nodeType":"ExpressionStatement","src":"8735:30:43"},{"assignments":[10503],"declarations":[{"constant":false,"id":10503,"mutability":"mutable","name":"$","nameLocation":"8815:1:43","nodeType":"VariableDeclaration","scope":10616,"src":"8775:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10502,"nodeType":"UserDefinedTypeName","pathNode":{"id":10501,"name":"IndexingAgreementManagerStorage","nameLocations":["8775:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"8775:31:43"},"referencedDeclaration":10132,"src":"8775:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10506,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10504,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"8819:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8819:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8775:57:43"},{"assignments":[10509],"declarations":[{"constant":false,"id":10509,"mutability":"mutable","name":"info","nameLocation":"8864:4:43","nodeType":"VariableDeclaration","scope":10616,"src":"8842:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":10508,"nodeType":"UserDefinedTypeName","pathNode":{"id":10507,"name":"AgreementInfo","nameLocations":["8842:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"8842:13:43"},"referencedDeclaration":1101,"src":"8842:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":10514,"initialValue":{"baseExpression":{"expression":{"id":10510,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"8871:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8873:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"8871:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10513,"indexExpression":{"id":10512,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"8884:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8871:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8842:54:43"},{"expression":{"arguments":[{"expression":{"id":10516,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"8914:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8919:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"8914:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10519,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"8971:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10518,"name":"IndexingAgreementManagerAgreementNotOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"8927:43:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8927:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8906:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:78:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10522,"nodeType":"ExpressionStatement","src":"8906:78:43"},{"assignments":[10524],"declarations":[{"constant":false,"id":10524,"mutability":"mutable","name":"pendingMaxNextClaim","nameLocation":"9111:19:43","nodeType":"VariableDeclaration","scope":10616,"src":"9103:27:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10523,"name":"uint256","nodeType":"ElementaryTypeName","src":"9103:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10525,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"9133:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9138:25:43","memberName":"maxOngoingTokensPerSecond","nodeType":"MemberAccess","referencedDeclaration":685,"src":"9133:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":10527,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"9166:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9171:23:43","memberName":"maxSecondsPerCollection","nodeType":"MemberAccess","referencedDeclaration":689,"src":"9166:28:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"9133:61:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":10530,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"9209:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9214:16:43","memberName":"maxInitialTokens","nodeType":"MemberAccess","referencedDeclaration":683,"src":"9209:21:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9133:97:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9103:127:43"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10534,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9354:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9359:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"9354:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9388:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9380:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9380:7:43","typeDescriptions":{}}},"id":10539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9380:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9354:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10559,"nodeType":"IfStatement","src":"9350:194:43","trueBody":{"id":10558,"nodeType":"Block","src":"9392:152:43","statements":[{"expression":{"id":10549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10541,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"9406:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9408:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"9406:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10546,"indexExpression":{"expression":{"id":10543,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9423:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9428:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"9423:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9406:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":10547,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9440:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9445:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"9440:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9406:64:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10550,"nodeType":"ExpressionStatement","src":"9406:64:43"},{"expression":{"id":10556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9484:49:43","subExpression":{"baseExpression":{"expression":{"id":10551,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"9491:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9493:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"9491:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10555,"indexExpression":{"expression":{"id":10553,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9510:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9515:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"9510:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9491:42:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10557,"nodeType":"ExpressionStatement","src":"9484:49:43"}]}},{"assignments":[10561],"declarations":[{"constant":false,"id":10561,"mutability":"mutable","name":"updateHash","nameLocation":"9632:10:43","nodeType":"VariableDeclaration","scope":10616,"src":"9624:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9624:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10566,"initialValue":{"arguments":[{"id":10564,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"9674:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}],"expression":{"id":10562,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"9645:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9665:8:43","memberName":"hashRCAU","nodeType":"MemberAccess","referencedDeclaration":1010,"src":"9645:28:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_RecurringCollectionAgreementUpdate_$694_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRecurringCollector.RecurringCollectionAgreementUpdate memory) view external returns (bytes32)"}},"id":10565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9624:55:43"},{"expression":{"id":10573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10567,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"9689:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9691:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"9689:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10571,"indexExpression":{"id":10569,"name":"updateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"9708:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9689:30:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10572,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"9722:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"9689:44:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10574,"nodeType":"ExpressionStatement","src":"9689:44:43"},{"expression":{"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10575,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9785:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9790:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"9785:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10578,"name":"pendingMaxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10524,"src":"9818:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9785:52:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10580,"nodeType":"ExpressionStatement","src":"9785:52:43"},{"expression":{"id":10586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10581,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9847:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9852:18:43","memberName":"pendingUpdateNonce","nodeType":"MemberAccess","referencedDeclaration":1092,"src":"9847:23:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10584,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"9873:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:5:43","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":691,"src":"9873:10:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"9847:36:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":10587,"nodeType":"ExpressionStatement","src":"9847:36:43"},{"expression":{"id":10592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":10588,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9893:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9898:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"9893:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10591,"name":"updateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"9918:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9893:35:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10593,"nodeType":"ExpressionStatement","src":"9893:35:43"},{"expression":{"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10594,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"9938:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9940:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"9938:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10599,"indexExpression":{"expression":{"id":10596,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"9955:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9960:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"9955:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9938:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10600,"name":"pendingMaxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10524,"src":"9972:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9938:53:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10602,"nodeType":"ExpressionStatement","src":"9938:53:43"},{"expression":{"arguments":[{"id":10604,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"10041:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"expression":{"id":10605,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"10044:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10049:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"10044:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10603,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"10029:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10029:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10608,"nodeType":"ExpressionStatement","src":"10029:28:43"},{"eventCall":{"arguments":[{"id":10610,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"10096:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":10611,"name":"pendingMaxNextClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10524,"src":"10109:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10612,"name":"rcau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10486,"src":"10130:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate calldata"}},"id":10613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10135:5:43","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":691,"src":"10130:10:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":10609,"name":"AgreementUpdateOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"10073:22:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_uint256_$_t_uint32_$returns$__$","typeString":"function (bytes16,uint256,uint32)"}},"id":10614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10073:68:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10615,"nodeType":"EmitStatement","src":"10068:73:43"}]},"documentation":{"id":10483,"nodeType":"StructuredDocumentation","src":"8488:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"27cc6df1","id":10617,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10489,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"8666:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10490,"kind":"modifierInvocation","modifierName":{"id":10488,"name":"onlyRole","nameLocations":["8657:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"8657:8:43"},"nodeType":"ModifierInvocation","src":"8657:23:43"},{"id":10492,"kind":"modifierInvocation","modifierName":{"id":10491,"name":"whenNotPaused","nameLocations":["8681:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"8681:13:43"},"nodeType":"ModifierInvocation","src":"8681:13:43"}],"name":"offerAgreementUpdate","nameLocation":"8543:20:43","nodeType":"FunctionDefinition","parameters":{"id":10487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10486,"mutability":"mutable","name":"rcau","nameLocation":"8637:4:43","nodeType":"VariableDeclaration","scope":10617,"src":"8573:68:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_calldata_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"},"typeName":{"id":10485,"nodeType":"UserDefinedTypeName","pathNode":{"id":10484,"name":"IRecurringCollector.RecurringCollectionAgreementUpdate","nameLocations":["8573:19:43","8593:34:43"],"nodeType":"IdentifierPath","referencedDeclaration":694,"src":"8573:54:43"},"referencedDeclaration":694,"src":"8573:54:43","typeDescriptions":{"typeIdentifier":"t_struct$_RecurringCollectionAgreementUpdate_$694_storage_ptr","typeString":"struct IRecurringCollector.RecurringCollectionAgreementUpdate"}},"visibility":"internal"}],"src":"8563:84:43"},"returnParameters":{"id":10495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10494,"mutability":"mutable","name":"agreementId","nameLocation":"8712:11:43","nodeType":"VariableDeclaration","scope":10617,"src":"8704:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10493,"name":"bytes16","nodeType":"ElementaryTypeName","src":"8704:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"8703:21:43"},"scope":11715,"src":"8534:1614:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1250],"body":{"id":10739,"nodeType":"Block","src":"10289:1203:43","statements":[{"assignments":[10630],"declarations":[{"constant":false,"id":10630,"mutability":"mutable","name":"$","nameLocation":"10339:1:43","nodeType":"VariableDeclaration","scope":10739,"src":"10299:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10629,"nodeType":"UserDefinedTypeName","pathNode":{"id":10628,"name":"IndexingAgreementManagerStorage","nameLocations":["10299:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"10299:31:43"},"referencedDeclaration":10132,"src":"10299:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10633,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10631,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"10343:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10299:57:43"},{"assignments":[10636],"declarations":[{"constant":false,"id":10636,"mutability":"mutable","name":"info","nameLocation":"10388:4:43","nodeType":"VariableDeclaration","scope":10739,"src":"10366:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":10635,"nodeType":"UserDefinedTypeName","pathNode":{"id":10634,"name":"AgreementInfo","nameLocations":["10366:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"10366:13:43"},"referencedDeclaration":1101,"src":"10366:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":10641,"initialValue":{"baseExpression":{"expression":{"id":10637,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"10395:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10397:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"10395:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10640,"indexExpression":{"id":10639,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"10408:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10395:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10366:54:43"},{"expression":{"arguments":[{"expression":{"id":10643,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"10438:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"10438:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10646,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"10495:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10645,"name":"IndexingAgreementManagerAgreementNotOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"10451:43:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10451:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10430:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10430:78:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10649,"nodeType":"ExpressionStatement","src":"10430:78:43"},{"assignments":[10654],"declarations":[{"constant":false,"id":10654,"mutability":"mutable","name":"agreement","nameLocation":"10661:9:43","nodeType":"VariableDeclaration","scope":10739,"src":"10620:50:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":10653,"nodeType":"UserDefinedTypeName","pathNode":{"id":10652,"name":"IRecurringCollector.AgreementData","nameLocations":["10620:19:43","10640:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"10620:33:43"},"referencedDeclaration":723,"src":"10620:33:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"id":10659,"initialValue":{"arguments":[{"id":10657,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"10706:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":10655,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"10673:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10693:12:43","memberName":"getAgreement","nodeType":"MemberAccess","referencedDeclaration":1037,"src":"10673:32:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_struct$_AgreementData_$723_memory_ptr_$","typeString":"function (bytes16) view external returns (struct IRecurringCollector.AgreementData memory)"}},"id":10658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10673:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"nodeType":"VariableDeclarationStatement","src":"10620:98:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"id":10666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10661,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10654,"src":"10749:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":10662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10759:5:43","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":722,"src":"10749:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":10663,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"10768:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":10664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10788:14:43","memberName":"AgreementState","nodeType":"MemberAccess","referencedDeclaration":625,"src":"10768:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AgreementState_$625_$","typeString":"type(enum IRecurringCollector.AgreementState)"}},"id":10665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10803:11:43","memberName":"NotAccepted","nodeType":"MemberAccess","referencedDeclaration":621,"src":"10768:46:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"src":"10749:65:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10668,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"10877:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10667,"name":"IndexingAgreementManagerAgreementAlreadyAccepted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"10828:48:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10828:61:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10728:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10728:171:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10671,"nodeType":"ExpressionStatement","src":"10728:171:43"},{"assignments":[10673],"declarations":[{"constant":false,"id":10673,"mutability":"mutable","name":"indexer","nameLocation":"10918:7:43","nodeType":"VariableDeclaration","scope":10739,"src":"10910:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10672,"name":"address","nodeType":"ElementaryTypeName","src":"10910:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10676,"initialValue":{"expression":{"id":10674,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"10928:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10933:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"10928:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10910:30:43"},{"assignments":[10678],"declarations":[{"constant":false,"id":10678,"mutability":"mutable","name":"totalToRemove","nameLocation":"10958:13:43","nodeType":"VariableDeclaration","scope":10739,"src":"10950:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10677,"name":"uint256","nodeType":"ElementaryTypeName","src":"10950:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10684,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10679,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"10974:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10979:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"10974:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":10681,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"10994:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10999:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"10994:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10974:50:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10950:74:43"},{"expression":{"id":10690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11073:45:43","subExpression":{"baseExpression":{"expression":{"id":10685,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"11080:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11082:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"11080:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10689,"indexExpression":{"expression":{"id":10687,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"11099:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11104:13:43","memberName":"agreementHash","nodeType":"MemberAccess","referencedDeclaration":1098,"src":"11099:18:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11080:38:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10691,"nodeType":"ExpressionStatement","src":"11073:45:43"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10692,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"11132:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11137:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"11132:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11166:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11158:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11158:7:43","typeDescriptions":{}}},"id":10697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11158:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11132:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10707,"nodeType":"IfStatement","src":"11128:116:43","trueBody":{"id":10706,"nodeType":"Block","src":"11170:74:43","statements":[{"expression":{"id":10704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11184:49:43","subExpression":{"baseExpression":{"expression":{"id":10699,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"11191:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11193:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"11191:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10703,"indexExpression":{"expression":{"id":10701,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"11210:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11215:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"11210:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11191:42:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10705,"nodeType":"ExpressionStatement","src":"11184:49:43"}]}},{"expression":{"id":10714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10708,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"11282:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11284:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"11282:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10712,"indexExpression":{"id":10710,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"11299:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11282:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10713,"name":"totalToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"11311:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11282:42:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10715,"nodeType":"ExpressionStatement","src":"11282:42:43"},{"expression":{"arguments":[{"arguments":[{"id":10724,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"11380:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11372:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11372:7:43","typeDescriptions":{}}},"id":10725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11372:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"expression":{"id":10716,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"11334:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11336:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"11334:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":10720,"indexExpression":{"id":10718,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"11356:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11334:30:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":10721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11365:6:43","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":8765,"src":"11334:37:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$8729_storage_ptr_$_t_bytes32_$returns$_t_bool_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":10726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11334:59:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10727,"nodeType":"ExpressionStatement","src":"11334:59:43"},{"expression":{"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11403:32:43","subExpression":{"baseExpression":{"expression":{"id":10728,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"11410:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11412:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"11410:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10731,"indexExpression":{"id":10730,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"11423:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11410:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10733,"nodeType":"ExpressionStatement","src":"11403:32:43"},{"eventCall":{"arguments":[{"id":10735,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10620,"src":"11464:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":10736,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"11477:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10734,"name":"OfferRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1117,"src":"11451:12:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_address_$returns$__$","typeString":"function (bytes16,address)"}},"id":10737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11451:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10738,"nodeType":"EmitStatement","src":"11446:39:43"}]},"documentation":{"id":10618,"nodeType":"StructuredDocumentation","src":"10154:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"59249b09","id":10740,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10623,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"10260:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10624,"kind":"modifierInvocation","modifierName":{"id":10622,"name":"onlyRole","nameLocations":["10251:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"10251:8:43"},"nodeType":"ModifierInvocation","src":"10251:23:43"},{"id":10626,"kind":"modifierInvocation","modifierName":{"id":10625,"name":"whenNotPaused","nameLocations":["10275:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"10275:13:43"},"nodeType":"ModifierInvocation","src":"10275:13:43"}],"name":"revokeOffer","nameLocation":"10209:11:43","nodeType":"FunctionDefinition","parameters":{"id":10621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10620,"mutability":"mutable","name":"agreementId","nameLocation":"10229:11:43","nodeType":"VariableDeclaration","scope":10740,"src":"10221:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10619,"name":"bytes16","nodeType":"ElementaryTypeName","src":"10221:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"10220:21:43"},"returnParameters":{"id":10627,"nodeType":"ParameterList","parameters":[],"src":"10289:0:43"},"scope":11715,"src":"10200:1292:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1256],"body":{"id":10843,"nodeType":"Block","src":"11637:1272:43","statements":[{"assignments":[10753],"declarations":[{"constant":false,"id":10753,"mutability":"mutable","name":"$","nameLocation":"11687:1:43","nodeType":"VariableDeclaration","scope":10843,"src":"11647:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10752,"nodeType":"UserDefinedTypeName","pathNode":{"id":10751,"name":"IndexingAgreementManagerStorage","nameLocations":["11647:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"11647:31:43"},"referencedDeclaration":10132,"src":"11647:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10756,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10754,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"11691:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11691:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11647:57:43"},{"assignments":[10759],"declarations":[{"constant":false,"id":10759,"mutability":"mutable","name":"info","nameLocation":"11736:4:43","nodeType":"VariableDeclaration","scope":10843,"src":"11714:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":10758,"nodeType":"UserDefinedTypeName","pathNode":{"id":10757,"name":"AgreementInfo","nameLocations":["11714:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"11714:13:43"},"referencedDeclaration":1101,"src":"11714:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":10764,"initialValue":{"baseExpression":{"expression":{"id":10760,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10753,"src":"11743:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11745:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"11743:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10763,"indexExpression":{"id":10762,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"11756:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11743:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11714:54:43"},{"expression":{"arguments":[{"expression":{"id":10766,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"11786:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11791:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"11786:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10769,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"11843:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10768,"name":"IndexingAgreementManagerAgreementNotOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"11799:43:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11799:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11778:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11778:78:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10772,"nodeType":"ExpressionStatement","src":"11778:78:43"},{"assignments":[10777],"declarations":[{"constant":false,"id":10777,"mutability":"mutable","name":"agreement","nameLocation":"11908:9:43","nodeType":"VariableDeclaration","scope":10843,"src":"11867:50:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":10776,"nodeType":"UserDefinedTypeName","pathNode":{"id":10775,"name":"IRecurringCollector.AgreementData","nameLocations":["11867:19:43","11887:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"11867:33:43"},"referencedDeclaration":723,"src":"11867:33:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"id":10782,"initialValue":{"arguments":[{"id":10780,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"11953:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":10778,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"11920:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11940:12:43","memberName":"getAgreement","nodeType":"MemberAccess","referencedDeclaration":1037,"src":"11920:32:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_struct$_AgreementData_$723_memory_ptr_$","typeString":"function (bytes16) view external returns (struct IRecurringCollector.AgreementData memory)"}},"id":10781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11920:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"nodeType":"VariableDeclarationStatement","src":"11867:98:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"id":10789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10784,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"12049:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":10785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12059:5:43","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":722,"src":"12049:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":10786,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"12068:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":10787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12088:14:43","memberName":"AgreementState","nodeType":"MemberAccess","referencedDeclaration":625,"src":"12068:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AgreementState_$625_$","typeString":"type(enum IRecurringCollector.AgreementState)"}},"id":10788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12103:11:43","memberName":"NotAccepted","nodeType":"MemberAccess","referencedDeclaration":621,"src":"12068:46:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"src":"12049:65:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10791,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"12173:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10790,"name":"IndexingAgreementManagerAgreementNotAccepted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1206,"src":"12128:44:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12128:57:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12028:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12028:167:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10794,"nodeType":"ExpressionStatement","src":"12028:167:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"id":10800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10795,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"12282:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":10796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12292:5:43","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":722,"src":"12282:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":10797,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"12301:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12321:14:43","memberName":"AgreementState","nodeType":"MemberAccess","referencedDeclaration":625,"src":"12301:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AgreementState_$625_$","typeString":"type(enum IRecurringCollector.AgreementState)"}},"id":10799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12336:8:43","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":622,"src":"12301:43:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"src":"12282:62:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10831,"nodeType":"IfStatement","src":"12278:353:43","trueBody":{"id":10830,"nodeType":"Block","src":"12346:285:43","statements":[{"assignments":[10802],"declarations":[{"constant":false,"id":10802,"mutability":"mutable","name":"ds","nameLocation":"12368:2:43","nodeType":"VariableDeclaration","scope":10830,"src":"12360:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10801,"name":"address","nodeType":"ElementaryTypeName","src":"12360:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10805,"initialValue":{"expression":{"id":10803,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"12373:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12378:11:43","memberName":"dataService","nodeType":"MemberAccess","referencedDeclaration":1090,"src":"12373:16:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12360:29:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10807,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"12411:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12414:4:43","memberName":"code","nodeType":"MemberAccess","src":"12411:7:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12419:6:43","memberName":"length","nodeType":"MemberAccess","src":"12411:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12429:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12411:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10813,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"12475:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10812,"name":"IndexingAgreementManagerInvalidDataService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"12432:42:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":10814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12432:46:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12403:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12403:76:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10816,"nodeType":"ExpressionStatement","src":"12403:76:43"},{"expression":{"arguments":[{"id":10821,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"12545:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"arguments":[{"id":10818,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"12510:2:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10817,"name":"ISubgraphService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"12493:16:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubgraphService_$2020_$","typeString":"type(contract ISubgraphService)"}},"id":10819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12493:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISubgraphService_$2020","typeString":"contract ISubgraphService"}},"id":10820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12514:30:43","memberName":"cancelIndexingAgreementByPayer","nodeType":"MemberAccess","referencedDeclaration":1926,"src":"12493:51:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes16_$returns$__$","typeString":"function (bytes16) external"}},"id":10822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12493:64:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10823,"nodeType":"ExpressionStatement","src":"12493:64:43"},{"eventCall":{"arguments":[{"id":10825,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"12594:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"expression":{"id":10826,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"12607:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12612:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"12607:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10824,"name":"AgreementCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"12576:17:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_address_$returns$__$","typeString":"function (bytes16,address)"}},"id":10828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12576:44:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10829,"nodeType":"EmitStatement","src":"12571:49:43"}]}},{"expression":{"arguments":[{"id":10833,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10753,"src":"12849:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"id":10834,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10743,"src":"12852:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10832,"name":"_reconcileAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11608,"src":"12829:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_bytes16_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,bytes16)"}},"id":10835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12829:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10836,"nodeType":"ExpressionStatement","src":"12829:35:43"},{"expression":{"arguments":[{"id":10838,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10753,"src":"12886:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"expression":{"id":10839,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10759,"src":"12889:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12894:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"12889:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10837,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"12874:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12874:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10842,"nodeType":"ExpressionStatement","src":"12874:28:43"}]},"documentation":{"id":10741,"nodeType":"StructuredDocumentation","src":"11498:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"f83118af","id":10844,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":10746,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"11608:13:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10747,"kind":"modifierInvocation","modifierName":{"id":10745,"name":"onlyRole","nameLocations":["11599:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"11599:8:43"},"nodeType":"ModifierInvocation","src":"11599:23:43"},{"id":10749,"kind":"modifierInvocation","modifierName":{"id":10748,"name":"whenNotPaused","nameLocations":["11623:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":3055,"src":"11623:13:43"},"nodeType":"ModifierInvocation","src":"11623:13:43"}],"name":"cancelAgreement","nameLocation":"11553:15:43","nodeType":"FunctionDefinition","parameters":{"id":10744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10743,"mutability":"mutable","name":"agreementId","nameLocation":"11577:11:43","nodeType":"VariableDeclaration","scope":10844,"src":"11569:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10742,"name":"bytes16","nodeType":"ElementaryTypeName","src":"11569:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"11568:21:43"},"returnParameters":{"id":10750,"nodeType":"ParameterList","parameters":[],"src":"11637:0:43"},"scope":11715,"src":"11544:1365:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1262],"body":{"id":10990,"nodeType":"Block","src":"13016:1737:43","statements":[{"assignments":[10852],"declarations":[{"constant":false,"id":10852,"mutability":"mutable","name":"$","nameLocation":"13066:1:43","nodeType":"VariableDeclaration","scope":10990,"src":"13026:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10851,"nodeType":"UserDefinedTypeName","pathNode":{"id":10850,"name":"IndexingAgreementManagerStorage","nameLocations":["13026:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"13026:31:43"},"referencedDeclaration":10132,"src":"13026:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":10855,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":10853,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"13070:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":10854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13070:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13026:57:43"},{"assignments":[10858],"declarations":[{"constant":false,"id":10858,"mutability":"mutable","name":"info","nameLocation":"13115:4:43","nodeType":"VariableDeclaration","scope":10990,"src":"13093:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":10857,"nodeType":"UserDefinedTypeName","pathNode":{"id":10856,"name":"AgreementInfo","nameLocations":["13093:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"13093:13:43"},"referencedDeclaration":1101,"src":"13093:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":10863,"initialValue":{"baseExpression":{"expression":{"id":10859,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"13122:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13124:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"13122:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10862,"indexExpression":{"id":10861,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"13135:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13122:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13093:54:43"},{"expression":{"arguments":[{"expression":{"id":10865,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"13165:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13170:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"13165:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10868,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"13222:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10867,"name":"IndexingAgreementManagerAgreementNotOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"13178:43:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":10869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13178:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13157:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13157:78:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10871,"nodeType":"ExpressionStatement","src":"13157:78:43"},{"assignments":[10876],"declarations":[{"constant":false,"id":10876,"mutability":"mutable","name":"agreement","nameLocation":"13351:9:43","nodeType":"VariableDeclaration","scope":10990,"src":"13310:50:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":10875,"nodeType":"UserDefinedTypeName","pathNode":{"id":10874,"name":"IRecurringCollector.AgreementData","nameLocations":["13310:19:43","13330:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"13310:33:43"},"referencedDeclaration":723,"src":"13310:33:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"id":10881,"initialValue":{"arguments":[{"id":10879,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"13396:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":10877,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"13363:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13383:12:43","memberName":"getAgreement","nodeType":"MemberAccess","referencedDeclaration":1037,"src":"13363:32:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_struct$_AgreementData_$723_memory_ptr_$","typeString":"function (bytes16) view external returns (struct IRecurringCollector.AgreementData memory)"}},"id":10880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13363:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"nodeType":"VariableDeclarationStatement","src":"13310:98:43"},{"assignments":[10883],"declarations":[{"constant":false,"id":10883,"mutability":"mutable","name":"currentMaxClaim","nameLocation":"13493:15:43","nodeType":"VariableDeclaration","scope":10990,"src":"13485:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10882,"name":"uint256","nodeType":"ElementaryTypeName","src":"13485:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10884,"nodeType":"VariableDeclarationStatement","src":"13485:23:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"id":10890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10885,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10876,"src":"13522:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":10886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:5:43","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":722,"src":"13522:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":10887,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"13541:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":10888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13561:14:43","memberName":"AgreementState","nodeType":"MemberAccess","referencedDeclaration":625,"src":"13541:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AgreementState_$625_$","typeString":"type(enum IRecurringCollector.AgreementState)"}},"id":10889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13576:11:43","memberName":"NotAccepted","nodeType":"MemberAccess","referencedDeclaration":621,"src":"13541:46:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"src":"13522:65:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10911,"nodeType":"Block","src":"13948:91:43","statements":[{"expression":{"id":10909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10904,"name":"currentMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"13962:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10907,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"14016:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":10905,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"13980:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":10906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14000:15:43","memberName":"getMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1045,"src":"13980:35:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_uint256_$","typeString":"function (bytes16) view external returns (uint256)"}},"id":10908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13980:48:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13962:66:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10910,"nodeType":"ExpressionStatement","src":"13962:66:43"}]},"id":10912,"nodeType":"IfStatement","src":"13518:521:43","trueBody":{"id":10903,"nodeType":"Block","src":"13589:353:43","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10891,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13752:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13758:9:43","memberName":"timestamp","nodeType":"MemberAccess","src":"13752:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":10893,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"13771:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13776:8:43","memberName":"deadline","nodeType":"MemberAccess","referencedDeclaration":1086,"src":"13771:13:43","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13752:32:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10902,"nodeType":"IfStatement","src":"13748:106:43","trueBody":{"id":10901,"nodeType":"Block","src":"13786:68:43","statements":[{"expression":{"id":10899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10896,"name":"currentMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"13804:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10897,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"13822:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13827:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"13822:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13804:35:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10900,"nodeType":"ExpressionStatement","src":"13804:35:43"}]}}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10914,"name":"currentMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"14056:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14075:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14056:20:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":10918,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"14126:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":10919,"name":"currentMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"14139:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10917,"name":"IndexingAgreementManagerAgreementStillClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1196,"src":"14078:47:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$_t_uint256_$returns$_t_error_$","typeString":"function (bytes16,uint256) pure returns (error)"}},"id":10920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14078:77:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":10913,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14048:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":10921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14048:108:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10922,"nodeType":"ExpressionStatement","src":"14048:108:43"},{"assignments":[10924],"declarations":[{"constant":false,"id":10924,"mutability":"mutable","name":"indexer","nameLocation":"14175:7:43","nodeType":"VariableDeclaration","scope":10990,"src":"14167:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10923,"name":"address","nodeType":"ElementaryTypeName","src":"14167:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10927,"initialValue":{"expression":{"id":10925,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14185:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14190:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"14185:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14167:30:43"},{"assignments":[10929],"declarations":[{"constant":false,"id":10929,"mutability":"mutable","name":"totalToRemove","nameLocation":"14215:13:43","nodeType":"VariableDeclaration","scope":10990,"src":"14207:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10928,"name":"uint256","nodeType":"ElementaryTypeName","src":"14207:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10935,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10930,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14231:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14236:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"14231:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":10932,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14251:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14256:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"14251:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14231:50:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14207:74:43"},{"expression":{"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"14330:45:43","subExpression":{"baseExpression":{"expression":{"id":10936,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"14337:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14339:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"14337:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10940,"indexExpression":{"expression":{"id":10938,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14356:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14361:13:43","memberName":"agreementHash","nodeType":"MemberAccess","referencedDeclaration":1098,"src":"14356:18:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14337:38:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10942,"nodeType":"ExpressionStatement","src":"14330:45:43"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":10949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10943,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14389:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14394:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"14389:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14423:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14415:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14415:7:43","typeDescriptions":{}}},"id":10948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14415:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14389:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10958,"nodeType":"IfStatement","src":"14385:116:43","trueBody":{"id":10957,"nodeType":"Block","src":"14427:74:43","statements":[{"expression":{"id":10955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"14441:49:43","subExpression":{"baseExpression":{"expression":{"id":10950,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"14448:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14450:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"14448:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":10954,"indexExpression":{"expression":{"id":10952,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10858,"src":"14467:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":10953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14472:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"14467:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14448:42:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10956,"nodeType":"ExpressionStatement","src":"14441:49:43"}]}},{"expression":{"id":10965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10959,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"14539:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14541:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"14539:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":10963,"indexExpression":{"id":10961,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10924,"src":"14556:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14539:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":10964,"name":"totalToRemove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"14568:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14539:42:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10966,"nodeType":"ExpressionStatement","src":"14539:42:43"},{"expression":{"arguments":[{"arguments":[{"id":10975,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"14637:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":10974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14629:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":10973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14629:7:43","typeDescriptions":{}}},"id":10976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14629:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"expression":{"id":10967,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"14591:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14593:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"14591:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":10971,"indexExpression":{"id":10969,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10924,"src":"14613:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14591:30:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":10972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14622:6:43","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":8765,"src":"14591:37:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$8729_storage_ptr_$_t_bytes32_$returns$_t_bool_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":10977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14591:59:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10978,"nodeType":"ExpressionStatement","src":"14591:59:43"},{"expression":{"id":10983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"14660:32:43","subExpression":{"baseExpression":{"expression":{"id":10979,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10852,"src":"14667:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":10980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14669:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"14667:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":10982,"indexExpression":{"id":10981,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"14680:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14667:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10984,"nodeType":"ExpressionStatement","src":"14660:32:43"},{"eventCall":{"arguments":[{"id":10986,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"14725:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":10987,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10924,"src":"14738:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10985,"name":"AgreementRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"14708:16:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_address_$returns$__$","typeString":"function (bytes16,address)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14708:38:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10989,"nodeType":"EmitStatement","src":"14703:43:43"}]},"documentation":{"id":10845,"nodeType":"StructuredDocumentation","src":"12915:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"1d1e41aa","id":10991,"implemented":true,"kind":"function","modifiers":[],"name":"removeAgreement","nameLocation":"12970:15:43","nodeType":"FunctionDefinition","parameters":{"id":10848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10847,"mutability":"mutable","name":"agreementId","nameLocation":"12994:11:43","nodeType":"VariableDeclaration","scope":10991,"src":"12986:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10846,"name":"bytes16","nodeType":"ElementaryTypeName","src":"12986:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"12985:21:43"},"returnParameters":{"id":10849,"nodeType":"ParameterList","parameters":[],"src":"13016:0:43"},"scope":11715,"src":"12961:1792:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1268],"body":{"id":11030,"nodeType":"Block","src":"14863:310:43","statements":[{"assignments":[10999],"declarations":[{"constant":false,"id":10999,"mutability":"mutable","name":"$","nameLocation":"14913:1:43","nodeType":"VariableDeclaration","scope":11030,"src":"14873:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":10998,"nodeType":"UserDefinedTypeName","pathNode":{"id":10997,"name":"IndexingAgreementManagerStorage","nameLocations":["14873:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"14873:31:43"},"referencedDeclaration":10132,"src":"14873:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11000,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"14917:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14917:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14873:57:43"},{"assignments":[11005],"declarations":[{"constant":false,"id":11005,"mutability":"mutable","name":"info","nameLocation":"14962:4:43","nodeType":"VariableDeclaration","scope":11030,"src":"14940:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":11004,"nodeType":"UserDefinedTypeName","pathNode":{"id":11003,"name":"AgreementInfo","nameLocations":["14940:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"14940:13:43"},"referencedDeclaration":1101,"src":"14940:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":11010,"initialValue":{"baseExpression":{"expression":{"id":11006,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10999,"src":"14969:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14971:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"14969:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11009,"indexExpression":{"id":11008,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"14982:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14969:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14940:54:43"},{"expression":{"arguments":[{"expression":{"id":11012,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11005,"src":"15012:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15017:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"15012:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":11015,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"15069:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":11014,"name":"IndexingAgreementManagerAgreementNotOffered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"15025:43:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes16_$returns$_t_error_$","typeString":"function (bytes16) pure returns (error)"}},"id":11016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15025:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":11011,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15004:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":11017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15004:78:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11018,"nodeType":"ExpressionStatement","src":"15004:78:43"},{"expression":{"arguments":[{"id":11020,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10999,"src":"15113:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"id":11021,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10994,"src":"15116:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":11019,"name":"_reconcileAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11608,"src":"15093:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_bytes16_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,bytes16)"}},"id":11022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15093:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11023,"nodeType":"ExpressionStatement","src":"15093:35:43"},{"expression":{"arguments":[{"id":11025,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10999,"src":"15150:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"expression":{"id":11026,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11005,"src":"15153:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15158:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"15153:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11024,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"15138:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":11028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15138:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11029,"nodeType":"ExpressionStatement","src":"15138:28:43"}]},"documentation":{"id":10992,"nodeType":"StructuredDocumentation","src":"14759:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"d253c4c4","id":11031,"implemented":true,"kind":"function","modifiers":[],"name":"reconcileAgreement","nameLocation":"14814:18:43","nodeType":"FunctionDefinition","parameters":{"id":10995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10994,"mutability":"mutable","name":"agreementId","nameLocation":"14841:11:43","nodeType":"VariableDeclaration","scope":11031,"src":"14833:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10993,"name":"bytes16","nodeType":"ElementaryTypeName","src":"14833:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"14832:21:43"},"returnParameters":{"id":10996,"nodeType":"ParameterList","parameters":[],"src":"14863:0:43"},"scope":11715,"src":"14805:368:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1274],"body":{"id":11091,"nodeType":"Block","src":"15270:412:43","statements":[{"assignments":[11039],"declarations":[{"constant":false,"id":11039,"mutability":"mutable","name":"$","nameLocation":"15320:1:43","nodeType":"VariableDeclaration","scope":11091,"src":"15280:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11038,"nodeType":"UserDefinedTypeName","pathNode":{"id":11037,"name":"IndexingAgreementManagerStorage","nameLocations":["15280:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"15280:31:43"},"referencedDeclaration":10132,"src":"15280:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11040,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"15324:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15324:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15280:57:43"},{"assignments":[11047],"declarations":[{"constant":false,"id":11047,"mutability":"mutable","name":"agreementIds","nameLocation":"15380:12:43","nodeType":"VariableDeclaration","scope":11091,"src":"15347:45:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11046,"nodeType":"UserDefinedTypeName","pathNode":{"id":11045,"name":"EnumerableSet.Bytes32Set","nameLocations":["15347:13:43","15361:10:43"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"15347:24:43"},"referencedDeclaration":8729,"src":"15347:24:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"id":11052,"initialValue":{"baseExpression":{"expression":{"id":11048,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"15395:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15397:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"15395:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":11051,"indexExpression":{"id":11050,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11034,"src":"15417:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15395:30:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15347:78:43"},{"assignments":[11054],"declarations":[{"constant":false,"id":11054,"mutability":"mutable","name":"count","nameLocation":"15443:5:43","nodeType":"VariableDeclaration","scope":11091,"src":"15435:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11053,"name":"uint256","nodeType":"ElementaryTypeName","src":"15435:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11058,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11055,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11047,"src":"15451:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15464:6:43","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8811,"src":"15451:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":11057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15451:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15435:37:43"},{"body":{"id":11084,"nodeType":"Block","src":"15519:123:43","statements":[{"assignments":[11070],"declarations":[{"constant":false,"id":11070,"mutability":"mutable","name":"agreementId","nameLocation":"15541:11:43","nodeType":"VariableDeclaration","scope":11084,"src":"15533:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11069,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15533:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"id":11078,"initialValue":{"arguments":[{"arguments":[{"id":11075,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"15579:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11073,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11047,"src":"15563:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15576:2:43","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":8829,"src":"15563:15:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":11076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15563:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15555:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":11071,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15555:7:43","typeDescriptions":{}}},"id":11077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15555:27:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"VariableDeclarationStatement","src":"15533:49:43"},{"expression":{"arguments":[{"id":11080,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"15616:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"id":11081,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11070,"src":"15619:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":11079,"name":"_reconcileAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11608,"src":"15596:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_bytes16_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,bytes16)"}},"id":11082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15596:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11083,"nodeType":"ExpressionStatement","src":"15596:35:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"15503:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11064,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11054,"src":"15507:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15503:9:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11085,"initializationExpression":{"assignments":[11060],"declarations":[{"constant":false,"id":11060,"mutability":"mutable","name":"i","nameLocation":"15496:1:43","nodeType":"VariableDeclaration","scope":11085,"src":"15488:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint256","nodeType":"ElementaryTypeName","src":"15488:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11062,"initialValue":{"hexValue":"30","id":11061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15500:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15488:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15514:3:43","subExpression":{"id":11066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"15516:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11068,"nodeType":"ExpressionStatement","src":"15514:3:43"},"nodeType":"ForStatement","src":"15483:159:43"},{"expression":{"arguments":[{"id":11087,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11039,"src":"15664:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"id":11088,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11034,"src":"15667:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11086,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"15652:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15652:23:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11090,"nodeType":"ExpressionStatement","src":"15652:23:43"}]},"documentation":{"id":11032,"nodeType":"StructuredDocumentation","src":"15179:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"09a18635","id":11092,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"15234:9:43","nodeType":"FunctionDefinition","parameters":{"id":11035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11034,"mutability":"mutable","name":"indexer","nameLocation":"15252:7:43","nodeType":"VariableDeclaration","scope":11092,"src":"15244:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11033,"name":"address","nodeType":"ElementaryTypeName","src":"15244:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15243:17:43"},"returnParameters":{"id":11036,"nodeType":"ParameterList","parameters":[],"src":"15270:0:43"},"scope":11715,"src":"15225:457:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1281],"body":{"id":11182,"nodeType":"Block","src":"15800:994:43","statements":[{"assignments":[11101],"declarations":[{"constant":false,"id":11101,"mutability":"mutable","name":"$","nameLocation":"15850:1:43","nodeType":"VariableDeclaration","scope":11182,"src":"15810:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11100,"nodeType":"UserDefinedTypeName","pathNode":{"id":11099,"name":"IndexingAgreementManagerStorage","nameLocations":["15810:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"15810:31:43"},"referencedDeclaration":10132,"src":"15810:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11104,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11102,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"15854:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15854:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15810:57:43"},{"body":{"id":11133,"nodeType":"Block","src":"15973:129:43","statements":[{"condition":{"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15991:37:43","subExpression":{"expression":{"baseExpression":{"expression":{"id":11116,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"15992:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15994:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"15992:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11121,"indexExpression":{"baseExpression":{"id":11118,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"16005:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[] calldata"}},"id":11120,"indexExpression":{"id":11119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"16018:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16005:15:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15992:29:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":11122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16022:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"15992:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11125,"nodeType":"IfStatement","src":"15987:51:43","trueBody":{"id":11124,"nodeType":"Continue","src":"16030:8:43"}},{"expression":{"arguments":[{"id":11127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"16072:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"baseExpression":{"id":11128,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"16075:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[] calldata"}},"id":11130,"indexExpression":{"id":11129,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"16088:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16075:15:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"id":11126,"name":"_reconcileAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11608,"src":"16052:19:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_bytes16_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,bytes16)"}},"id":11131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16052:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11132,"nodeType":"ExpressionStatement","src":"16052:39:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"15943:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":11110,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"15947:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[] calldata"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15960:6:43","memberName":"length","nodeType":"MemberAccess","src":"15947:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15943:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11134,"initializationExpression":{"assignments":[11106],"declarations":[{"constant":false,"id":11106,"mutability":"mutable","name":"i","nameLocation":"15936:1:43","nodeType":"VariableDeclaration","scope":11134,"src":"15928:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11105,"name":"uint256","nodeType":"ElementaryTypeName","src":"15928:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11108,"initialValue":{"hexValue":"30","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15940:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15928:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15968:3:43","subExpression":{"id":11113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"15970:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11115,"nodeType":"ExpressionStatement","src":"15968:3:43"},"nodeType":"ForStatement","src":"15923:179:43"},{"assignments":[11136],"declarations":[{"constant":false,"id":11136,"mutability":"mutable","name":"lastFunded","nameLocation":"16513:10:43","nodeType":"VariableDeclaration","scope":11182,"src":"16505:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11135,"name":"address","nodeType":"ElementaryTypeName","src":"16505:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11137,"nodeType":"VariableDeclarationStatement","src":"16505:18:43"},{"body":{"id":11180,"nodeType":"Block","src":"16583:205:43","statements":[{"assignments":[11150],"declarations":[{"constant":false,"id":11150,"mutability":"mutable","name":"idx","nameLocation":"16605:3:43","nodeType":"VariableDeclaration","scope":11180,"src":"16597:11:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11149,"name":"address","nodeType":"ElementaryTypeName","src":"16597:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11158,"initialValue":{"expression":{"baseExpression":{"expression":{"id":11151,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"16611:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"16611:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11156,"indexExpression":{"baseExpression":{"id":11153,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"16624:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[] calldata"}},"id":11155,"indexExpression":{"id":11154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"16637:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16624:15:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16611:29:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":11157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16641:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"16611:37:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16597:51:43"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11159,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"16666:3:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16681:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16673:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11160,"name":"address","nodeType":"ElementaryTypeName","src":"16673:7:43","typeDescriptions":{}}},"id":11163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16673:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16666:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11165,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"16687:3:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11166,"name":"lastFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"16694:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16687:17:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16666:38:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11170,"nodeType":"IfStatement","src":"16662:52:43","trueBody":{"id":11169,"nodeType":"Continue","src":"16706:8:43"}},{"expression":{"arguments":[{"id":11172,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11101,"src":"16740:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},{"id":11173,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"16743:3:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11171,"name":"_fundEscrow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"16728:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer,address)"}},"id":11174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16728:19:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11175,"nodeType":"ExpressionStatement","src":"16728:19:43"},{"expression":{"id":11178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11176,"name":"lastFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"16761:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11177,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"16774:3:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16761:16:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11179,"nodeType":"ExpressionStatement","src":"16761:16:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11142,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"16553:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":11143,"name":"agreementIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"16557:12:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[] calldata"}},"id":11144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16570:6:43","memberName":"length","nodeType":"MemberAccess","src":"16557:19:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16553:23:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11181,"initializationExpression":{"assignments":[11139],"declarations":[{"constant":false,"id":11139,"mutability":"mutable","name":"i","nameLocation":"16546:1:43","nodeType":"VariableDeclaration","scope":11181,"src":"16538:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11138,"name":"uint256","nodeType":"ElementaryTypeName","src":"16538:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11141,"initialValue":{"hexValue":"30","id":11140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16550:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16538:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16578:3:43","subExpression":{"id":11146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"16580:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11148,"nodeType":"ExpressionStatement","src":"16578:3:43"},"nodeType":"ForStatement","src":"16533:255:43"}]},"documentation":{"id":11093,"nodeType":"StructuredDocumentation","src":"15688:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"78ecca5f","id":11183,"implemented":true,"kind":"function","modifiers":[],"name":"reconcileBatch","nameLocation":"15743:14:43","nodeType":"FunctionDefinition","parameters":{"id":11097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11096,"mutability":"mutable","name":"agreementIds","nameLocation":"15777:12:43","nodeType":"VariableDeclaration","scope":11183,"src":"15758:31:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_calldata_ptr","typeString":"bytes16[]"},"typeName":{"baseType":{"id":11094,"name":"bytes16","nodeType":"ElementaryTypeName","src":"15758:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":11095,"nodeType":"ArrayTypeName","src":"15758:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}},"visibility":"internal"}],"src":"15757:33:43"},"returnParameters":{"id":11098,"nodeType":"ParameterList","parameters":[],"src":"15800:0:43"},"scope":11715,"src":"15734:1060:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1287],"body":{"id":11285,"nodeType":"Block","src":"16890:1035:43","statements":[{"assignments":[11191],"declarations":[{"constant":false,"id":11191,"mutability":"mutable","name":"$","nameLocation":"16940:1:43","nodeType":"VariableDeclaration","scope":11285,"src":"16900:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11190,"nodeType":"UserDefinedTypeName","pathNode":{"id":11189,"name":"IndexingAgreementManagerStorage","nameLocations":["16900:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"16900:31:43"},"referencedDeclaration":10132,"src":"16900:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11194,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11192,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"16944:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16944:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16900:57:43"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":11196,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11191,"src":"16975:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16977:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"16975:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":11199,"indexExpression":{"id":11198,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"16997:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16975:30:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":11200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17006:6:43","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8811,"src":"16975:37:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17018:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16975:44:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":11205,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17064:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11204,"name":"IndexingAgreementManagerStillHasAgreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1221,"src":"17021:42:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":11206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:51:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":11195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16967:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16967:106:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11208,"nodeType":"ExpressionStatement","src":"16967:106:43"},{"condition":{"baseExpression":{"expression":{"id":11209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11191,"src":"17165:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17167:7:43","memberName":"thawing","nodeType":"MemberAccess","referencedDeclaration":10131,"src":"17165:9:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11212,"indexExpression":{"id":11211,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17175:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17165:18:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11240,"nodeType":"IfStatement","src":"17161:386:43","trueBody":{"id":11239,"nodeType":"Block","src":"17185:362:43","statements":[{"clauses":[{"block":{"id":11233,"nodeType":"Block","src":"17324:106:43","statements":[{"expression":{"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11221,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11191,"src":"17342:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17344:7:43","memberName":"thawing","nodeType":"MemberAccess","referencedDeclaration":10131,"src":"17342:9:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11225,"indexExpression":{"id":11223,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17352:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17342:18:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":11226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17363:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17342:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11228,"nodeType":"ExpressionStatement","src":"17342:26:43"},{"eventCall":{"arguments":[{"id":11230,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17407:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11229,"name":"EscrowWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1172,"src":"17391:15:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17391:24:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11232,"nodeType":"EmitStatement","src":"17386:29:43"}]},"errorName":"","id":11234,"nodeType":"TryCatchClause","src":"17324:106:43"},{"block":{"id":11236,"nodeType":"Block","src":"17437:100:43","statements":[{"functionReturnParameters":11188,"id":11235,"nodeType":"Return","src":"17516:7:43"}]},"errorName":"","id":11237,"nodeType":"TryCatchClause","src":"17431:106:43"}],"externalCall":{"arguments":[{"arguments":[{"id":11217,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"17293:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17285:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11215,"name":"address","nodeType":"ElementaryTypeName","src":"17285:7:43","typeDescriptions":{}}},"id":11218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17285:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11219,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17315:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11213,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"17260:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17276:8:43","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":574,"src":"17260:24:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":11220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17260:63:43","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11238,"nodeType":"TryStatement","src":"17256:281:43"}]}},{"assignments":[11242],"declarations":[{"constant":false,"id":11242,"mutability":"mutable","name":"available","nameLocation":"17613:9:43","nodeType":"VariableDeclaration","scope":11285,"src":"17605:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11241,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11255,"initialValue":{"arguments":[{"arguments":[{"id":11247,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17660:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":11246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17652:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11245,"name":"address","nodeType":"ElementaryTypeName","src":"17652:7:43","typeDescriptions":{}}},"id":11248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17652:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11251,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"17675:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17667:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11249,"name":"address","nodeType":"ElementaryTypeName","src":"17667:7:43","typeDescriptions":{}}},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17667:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11253,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17697:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11243,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"17625:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17641:10:43","memberName":"getBalance","nodeType":"MemberAccess","referencedDeclaration":605,"src":"17625:26:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address,address) view external returns (uint256)"}},"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17625:80:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17605:100:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":11256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17719:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11257,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"17723:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17719:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11284,"nodeType":"IfStatement","src":"17715:204:43","trueBody":{"id":11283,"nodeType":"Block","src":"17734:185:43","statements":[{"expression":{"arguments":[{"arguments":[{"id":11264,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"17777:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17769:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11262,"name":"address","nodeType":"ElementaryTypeName","src":"17769:7:43","typeDescriptions":{}}},"id":11265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17769:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11266,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17799:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11267,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"17808:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11259,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"17748:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17764:4:43","memberName":"thaw","nodeType":"MemberAccess","referencedDeclaration":558,"src":"17748:20:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17748:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11269,"nodeType":"ExpressionStatement","src":"17748:70:43"},{"expression":{"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11270,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11191,"src":"17832:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17834:7:43","memberName":"thawing","nodeType":"MemberAccess","referencedDeclaration":10131,"src":"17832:9:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11274,"indexExpression":{"id":11272,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17842:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17832:18:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17853:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17832:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11277,"nodeType":"ExpressionStatement","src":"17832:25:43"},{"eventCall":{"arguments":[{"id":11279,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"17889:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11280,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"17898:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11278,"name":"EscrowThawed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"17876:12:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17876:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11282,"nodeType":"EmitStatement","src":"17871:37:43"}]}}]},"documentation":{"id":11184,"nodeType":"StructuredDocumentation","src":"16800:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"037c5d7f","id":11286,"implemented":true,"kind":"function","modifiers":[],"name":"maintain","nameLocation":"16855:8:43","nodeType":"FunctionDefinition","parameters":{"id":11187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11186,"mutability":"mutable","name":"indexer","nameLocation":"16872:7:43","nodeType":"VariableDeclaration","scope":11286,"src":"16864:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11185,"name":"address","nodeType":"ElementaryTypeName","src":"16864:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16863:17:43"},"returnParameters":{"id":11188,"nodeType":"ParameterList","parameters":[],"src":"16890:0:43"},"scope":11715,"src":"16846:1079:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1295],"body":{"id":11300,"nodeType":"Block","src":"18109:61:43","statements":[{"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11294,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"18126:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18126:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18140:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"18126:28:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11298,"indexExpression":{"id":11297,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11289,"src":"18155:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18126:37:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11293,"id":11299,"nodeType":"Return","src":"18119:44:43"}]},"documentation":{"id":11287,"nodeType":"StructuredDocumentation","src":"17987:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"e9a91276","id":11301,"implemented":true,"kind":"function","modifiers":[],"name":"getRequiredEscrow","nameLocation":"18042:17:43","nodeType":"FunctionDefinition","parameters":{"id":11290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11289,"mutability":"mutable","name":"indexer","nameLocation":"18068:7:43","nodeType":"VariableDeclaration","scope":11301,"src":"18060:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11288,"name":"address","nodeType":"ElementaryTypeName","src":"18060:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18059:17:43"},"returnParameters":{"id":11293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11301,"src":"18100:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11291,"name":"uint256","nodeType":"ElementaryTypeName","src":"18100:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18099:9:43"},"scope":11715,"src":"18033:137:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1303],"body":{"id":11348,"nodeType":"Block","src":"18291:358:43","statements":[{"assignments":[11311],"declarations":[{"constant":false,"id":11311,"mutability":"mutable","name":"$","nameLocation":"18341:1:43","nodeType":"VariableDeclaration","scope":11348,"src":"18301:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11310,"nodeType":"UserDefinedTypeName","pathNode":{"id":11309,"name":"IndexingAgreementManagerStorage","nameLocations":["18301:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"18301:31:43"},"referencedDeclaration":10132,"src":"18301:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11312,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"18345:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18345:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18301:57:43"},{"assignments":[11316],"declarations":[{"constant":false,"id":11316,"mutability":"mutable","name":"required","nameLocation":"18376:8:43","nodeType":"VariableDeclaration","scope":11348,"src":"18368:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11315,"name":"uint256","nodeType":"ElementaryTypeName","src":"18368:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11321,"initialValue":{"baseExpression":{"expression":{"id":11317,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"18387:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18389:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"18387:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11320,"indexExpression":{"id":11319,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11304,"src":"18404:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18387:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18368:44:43"},{"assignments":[11323],"declarations":[{"constant":false,"id":11323,"mutability":"mutable","name":"currentBalance","nameLocation":"18430:14:43","nodeType":"VariableDeclaration","scope":11348,"src":"18422:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11322,"name":"uint256","nodeType":"ElementaryTypeName","src":"18422:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11336,"initialValue":{"arguments":[{"arguments":[{"id":11328,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18482:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":11327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18474:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11326,"name":"address","nodeType":"ElementaryTypeName","src":"18474:7:43","typeDescriptions":{}}},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18474:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11332,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"18497:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18489:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11330,"name":"address","nodeType":"ElementaryTypeName","src":"18489:7:43","typeDescriptions":{}}},"id":11333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18489:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11334,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11304,"src":"18519:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11324,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"18447:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18463:10:43","memberName":"getBalance","nodeType":"MemberAccess","referencedDeclaration":605,"src":"18447:26:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address,address) view external returns (uint256)"}},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18447:80:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18422:105:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11337,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11323,"src":"18541:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11338,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11316,"src":"18558:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18541:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11345,"nodeType":"IfStatement","src":"18537:88:43","trueBody":{"id":11344,"nodeType":"Block","src":"18568:57:43","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11340,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11316,"src":"18589:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11341,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11323,"src":"18600:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18589:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11308,"id":11343,"nodeType":"Return","src":"18582:32:43"}]}},{"expression":{"hexValue":"30","id":11346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18641:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":11308,"id":11347,"nodeType":"Return","src":"18634:8:43"}]},"documentation":{"id":11302,"nodeType":"StructuredDocumentation","src":"18176:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"a74558e1","id":11349,"implemented":true,"kind":"function","modifiers":[],"name":"getDeficit","nameLocation":"18231:10:43","nodeType":"FunctionDefinition","parameters":{"id":11305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11304,"mutability":"mutable","name":"indexer","nameLocation":"18250:7:43","nodeType":"VariableDeclaration","scope":11349,"src":"18242:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11303,"name":"address","nodeType":"ElementaryTypeName","src":"18242:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18241:17:43"},"returnParameters":{"id":11308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11349,"src":"18282:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11306,"name":"uint256","nodeType":"ElementaryTypeName","src":"18282:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18281:9:43"},"scope":11715,"src":"18222:427:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1311],"body":{"id":11364,"nodeType":"Block","src":"18788:74:43","statements":[{"expression":{"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11357,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"18805:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18805:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18819:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"18805:24:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11361,"indexExpression":{"id":11360,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11352,"src":"18830:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18805:37:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"id":11362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18843:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"18805:50:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11356,"id":11363,"nodeType":"Return","src":"18798:57:43"}]},"documentation":{"id":11350,"nodeType":"StructuredDocumentation","src":"18655:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"085b3e65","id":11365,"implemented":true,"kind":"function","modifiers":[],"name":"getAgreementMaxNextClaim","nameLocation":"18710:24:43","nodeType":"FunctionDefinition","parameters":{"id":11353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11352,"mutability":"mutable","name":"agreementId","nameLocation":"18743:11:43","nodeType":"VariableDeclaration","scope":11365,"src":"18735:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11351,"name":"bytes16","nodeType":"ElementaryTypeName","src":"18735:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"18734:21:43"},"returnParameters":{"id":11356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11365,"src":"18779:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11354,"name":"uint256","nodeType":"ElementaryTypeName","src":"18779:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18778:9:43"},"scope":11715,"src":"18701:161:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1320],"body":{"id":11380,"nodeType":"Block","src":"19006:61:43","statements":[{"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11374,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"19023:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19023:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19037:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"19023:24:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11378,"indexExpression":{"id":11377,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11368,"src":"19048:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19023:37:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"functionReturnParameters":11373,"id":11379,"nodeType":"Return","src":"19016:44:43"}]},"documentation":{"id":11366,"nodeType":"StructuredDocumentation","src":"18868:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"e9b78bc8","id":11381,"implemented":true,"kind":"function","modifiers":[],"name":"getAgreementInfo","nameLocation":"18923:16:43","nodeType":"FunctionDefinition","parameters":{"id":11369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11368,"mutability":"mutable","name":"agreementId","nameLocation":"18948:11:43","nodeType":"VariableDeclaration","scope":11381,"src":"18940:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11367,"name":"bytes16","nodeType":"ElementaryTypeName","src":"18940:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"18939:21:43"},"returnParameters":{"id":11373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11381,"src":"18984:20:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_memory_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":11371,"nodeType":"UserDefinedTypeName","pathNode":{"id":11370,"name":"AgreementInfo","nameLocations":["18984:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"18984:13:43"},"referencedDeclaration":1101,"src":"18984:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"src":"18983:22:43"},"scope":11715,"src":"18914:153:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1328],"body":{"id":11397,"nodeType":"Block","src":"19202:75:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11389,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"19219:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19219:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19233:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"19219:33:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":11393,"indexExpression":{"id":11392,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"19253:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19219:42:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":11394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19262:6:43","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8811,"src":"19219:49:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19219:51:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11388,"id":11396,"nodeType":"Return","src":"19212:58:43"}]},"documentation":{"id":11382,"nodeType":"StructuredDocumentation","src":"19073:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"f2da52c5","id":11398,"implemented":true,"kind":"function","modifiers":[],"name":"getIndexerAgreementCount","nameLocation":"19128:24:43","nodeType":"FunctionDefinition","parameters":{"id":11385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11384,"mutability":"mutable","name":"indexer","nameLocation":"19161:7:43","nodeType":"VariableDeclaration","scope":11398,"src":"19153:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11383,"name":"address","nodeType":"ElementaryTypeName","src":"19153:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19152:17:43"},"returnParameters":{"id":11388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11398,"src":"19193:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11386,"name":"uint256","nodeType":"ElementaryTypeName","src":"19193:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19192:9:43"},"scope":11715,"src":"19119:158:43","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1337],"body":{"id":11466,"nodeType":"Block","src":"19417:370:43","statements":[{"assignments":[11409],"declarations":[{"constant":false,"id":11409,"mutability":"mutable","name":"$","nameLocation":"19467:1:43","nodeType":"VariableDeclaration","scope":11466,"src":"19427:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11408,"nodeType":"UserDefinedTypeName","pathNode":{"id":11407,"name":"IndexingAgreementManagerStorage","nameLocations":["19427:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"19427:31:43"},"referencedDeclaration":10132,"src":"19427:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"id":11412,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11410,"name":"_getStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"19471:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr_$","typeString":"function () pure returns (struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer)"}},"id":11411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19471:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19427:57:43"},{"assignments":[11417],"declarations":[{"constant":false,"id":11417,"mutability":"mutable","name":"ids","nameLocation":"19527:3:43","nodeType":"VariableDeclaration","scope":11466,"src":"19494:36:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11416,"nodeType":"UserDefinedTypeName","pathNode":{"id":11415,"name":"EnumerableSet.Bytes32Set","nameLocations":["19494:13:43","19508:10:43"],"nodeType":"IdentifierPath","referencedDeclaration":8729,"src":"19494:24:43"},"referencedDeclaration":8729,"src":"19494:24:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"id":11422,"initialValue":{"baseExpression":{"expression":{"id":11418,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11409,"src":"19533:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19535:19:43","memberName":"indexerAgreementIds","nodeType":"MemberAccess","referencedDeclaration":10126,"src":"19533:21:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Bytes32Set_$8729_storage_$","typeString":"mapping(address => struct EnumerableSet.Bytes32Set storage ref)"}},"id":11421,"indexExpression":{"id":11420,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11401,"src":"19555:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19533:30:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19494:69:43"},{"assignments":[11424],"declarations":[{"constant":false,"id":11424,"mutability":"mutable","name":"count","nameLocation":"19581:5:43","nodeType":"VariableDeclaration","scope":11466,"src":"19573:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11423,"name":"uint256","nodeType":"ElementaryTypeName","src":"19573:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11428,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11425,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11417,"src":"19589:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19593:6:43","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":8811,"src":"19589:10:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":11427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19589:12:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19573:28:43"},{"assignments":[11433],"declarations":[{"constant":false,"id":11433,"mutability":"mutable","name":"result","nameLocation":"19628:6:43","nodeType":"VariableDeclaration","scope":11466,"src":"19611:23:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[]"},"typeName":{"baseType":{"id":11431,"name":"bytes16","nodeType":"ElementaryTypeName","src":"19611:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":11432,"nodeType":"ArrayTypeName","src":"19611:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}},"visibility":"internal"}],"id":11439,"initialValue":{"arguments":[{"id":11437,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11424,"src":"19651:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19637:13:43","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes16[] memory)"},"typeName":{"baseType":{"id":11434,"name":"bytes16","nodeType":"ElementaryTypeName","src":"19641:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":11435,"nodeType":"ArrayTypeName","src":"19641:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}}},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19637:20:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19611:46:43"},{"body":{"id":11462,"nodeType":"Block","src":"19703:55:43","statements":[{"expression":{"id":11460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11450,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11433,"src":"19717:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[] memory"}},"id":11452,"indexExpression":{"id":11451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"19724:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19717:9:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":11457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"19744:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11455,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11417,"src":"19737:3:43","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$8729_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19741:2:43","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":8829,"src":"19737:6:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$8729_storage_ptr_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_struct$_Bytes32Set_$8729_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":11458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:9:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19729:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":11453,"name":"bytes16","nodeType":"ElementaryTypeName","src":"19729:7:43","typeDescriptions":{}}},"id":11459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19729:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"19717:30:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":11461,"nodeType":"ExpressionStatement","src":"19717:30:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"19687:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11445,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11424,"src":"19691:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19687:9:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11463,"initializationExpression":{"assignments":[11441],"declarations":[{"constant":false,"id":11441,"mutability":"mutable","name":"i","nameLocation":"19680:1:43","nodeType":"VariableDeclaration","scope":11463,"src":"19672:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11440,"name":"uint256","nodeType":"ElementaryTypeName","src":"19672:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11443,"initialValue":{"hexValue":"30","id":11442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19684:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19672:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19698:3:43","subExpression":{"id":11447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"19700:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11449,"nodeType":"ExpressionStatement","src":"19698:3:43"},"nodeType":"ForStatement","src":"19667:91:43"},{"expression":{"id":11464,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11433,"src":"19774:6:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[] memory"}},"functionReturnParameters":11406,"id":11465,"nodeType":"Return","src":"19767:13:43"}]},"documentation":{"id":11399,"nodeType":"StructuredDocumentation","src":"19283:41:43","text":"@inheritdoc IIndexingAgreementManager"},"functionSelector":"a2a58379","id":11467,"implemented":true,"kind":"function","modifiers":[],"name":"getIndexerAgreements","nameLocation":"19338:20:43","nodeType":"FunctionDefinition","parameters":{"id":11402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11401,"mutability":"mutable","name":"indexer","nameLocation":"19367:7:43","nodeType":"VariableDeclaration","scope":11467,"src":"19359:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11400,"name":"address","nodeType":"ElementaryTypeName","src":"19359:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19358:17:43"},"returnParameters":{"id":11406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11467,"src":"19399:16:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_memory_ptr","typeString":"bytes16[]"},"typeName":{"baseType":{"id":11403,"name":"bytes16","nodeType":"ElementaryTypeName","src":"19399:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":11404,"nodeType":"ArrayTypeName","src":"19399:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes16_$dyn_storage_ptr","typeString":"bytes16[]"}},"visibility":"internal"}],"src":"19398:18:43"},"scope":11715,"src":"19329:458:43","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11607,"nodeType":"Block","src":"20128:1348:43","statements":[{"assignments":[11478],"declarations":[{"constant":false,"id":11478,"mutability":"mutable","name":"info","nameLocation":"20160:4:43","nodeType":"VariableDeclaration","scope":11607,"src":"20138:26:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"},"typeName":{"id":11477,"nodeType":"UserDefinedTypeName","pathNode":{"id":11476,"name":"AgreementInfo","nameLocations":["20138:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":1101,"src":"20138:13:43"},"referencedDeclaration":1101,"src":"20138:13:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo"}},"visibility":"internal"}],"id":11483,"initialValue":{"baseExpression":{"expression":{"id":11479,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"20167:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20169:10:43","memberName":"agreements","nodeType":"MemberAccess","referencedDeclaration":10115,"src":"20167:12:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes16_$_t_struct$_AgreementInfo_$1101_storage_$","typeString":"mapping(bytes16 => struct IIndexingAgreementManager.AgreementInfo storage ref)"}},"id":11482,"indexExpression":{"id":11481,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11473,"src":"20180:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20167:25:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage","typeString":"struct IIndexingAgreementManager.AgreementInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20138:54:43"},{"condition":{"id":11486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20206:12:43","subExpression":{"expression":{"id":11484,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20207:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:6:43","memberName":"exists","nodeType":"MemberAccess","referencedDeclaration":1088,"src":"20207:11:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11488,"nodeType":"IfStatement","src":"20202:25:43","trueBody":{"functionReturnParameters":11475,"id":11487,"nodeType":"Return","src":"20220:7:43"}},{"assignments":[11493],"declarations":[{"constant":false,"id":11493,"mutability":"mutable","name":"agreement","nameLocation":"20278:9:43","nodeType":"VariableDeclaration","scope":11607,"src":"20237:50:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData"},"typeName":{"id":11492,"nodeType":"UserDefinedTypeName","pathNode":{"id":11491,"name":"IRecurringCollector.AgreementData","nameLocations":["20237:19:43","20257:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":723,"src":"20237:33:43"},"referencedDeclaration":723,"src":"20237:33:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_storage_ptr","typeString":"struct IRecurringCollector.AgreementData"}},"visibility":"internal"}],"id":11498,"initialValue":{"arguments":[{"id":11496,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11473,"src":"20323:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":11494,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"20290:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":11495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20310:12:43","memberName":"getAgreement","nodeType":"MemberAccess","referencedDeclaration":1037,"src":"20290:32:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_struct$_AgreementData_$723_memory_ptr_$","typeString":"function (bytes16) view external returns (struct IRecurringCollector.AgreementData memory)"}},"id":11497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20290:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"nodeType":"VariableDeclarationStatement","src":"20237:98:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"},"id":11504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11499,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11493,"src":"20416:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":11500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20426:5:43","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":722,"src":"20416:15:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":11501,"name":"IRecurringCollector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"20435:19:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRecurringCollector_$1076_$","typeString":"type(contract IRecurringCollector)"}},"id":11502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20455:14:43","memberName":"AgreementState","nodeType":"MemberAccess","referencedDeclaration":625,"src":"20435:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AgreementState_$625_$","typeString":"type(enum IRecurringCollector.AgreementState)"}},"id":11503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20470:11:43","memberName":"NotAccepted","nodeType":"MemberAccess","referencedDeclaration":621,"src":"20435:46:43","typeDescriptions":{"typeIdentifier":"t_enum$_AgreementState_$625","typeString":"enum IRecurringCollector.AgreementState"}},"src":"20416:65:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11507,"nodeType":"IfStatement","src":"20412:102:43","trueBody":{"id":11506,"nodeType":"Block","src":"20483:31:43","statements":[{"functionReturnParameters":11475,"id":11505,"nodeType":"Return","src":"20497:7:43"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":11514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11508,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20680:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20685:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"20680:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20714:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20706:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20706:7:43","typeDescriptions":{}}},"id":11513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20706:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20680:36:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":11519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11515,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20720:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20725:18:43","memberName":"pendingUpdateNonce","nodeType":"MemberAccess","referencedDeclaration":1092,"src":"20720:23:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":11517,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11493,"src":"20747:9:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementData_$723_memory_ptr","typeString":"struct IRecurringCollector.AgreementData memory"}},"id":11518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20757:11:43","memberName":"updateNonce","nodeType":"MemberAccess","referencedDeclaration":717,"src":"20747:21:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"20720:48:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20680:88:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11560,"nodeType":"IfStatement","src":"20676:384:43","trueBody":{"id":11559,"nodeType":"Block","src":"20770:290:43","statements":[{"expression":{"id":11529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11521,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"20784:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20786:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"20784:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11526,"indexExpression":{"expression":{"id":11523,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20801:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20806:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"20801:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20784:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":11527,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20818:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"20818:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20784:64:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11530,"nodeType":"ExpressionStatement","src":"20784:64:43"},{"expression":{"id":11536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"20862:49:43","subExpression":{"baseExpression":{"expression":{"id":11531,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"20869:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20871:16:43","memberName":"authorizedHashes","nodeType":"MemberAccess","referencedDeclaration":10109,"src":"20869:18:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes16_$","typeString":"mapping(bytes32 => bytes16)"}},"id":11535,"indexExpression":{"expression":{"id":11533,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20888:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20893:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"20888:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20869:42:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11537,"nodeType":"ExpressionStatement","src":"20862:49:43"},{"expression":{"id":11542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11538,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20925:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20930:25:43","memberName":"pendingUpdateMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1096,"src":"20925:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":11541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20958:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20925:34:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11543,"nodeType":"ExpressionStatement","src":"20925:34:43"},{"expression":{"id":11548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11544,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"20973:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20978:18:43","memberName":"pendingUpdateNonce","nodeType":"MemberAccess","referencedDeclaration":1092,"src":"20973:23:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":11547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20999:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20973:27:43","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":11549,"nodeType":"ExpressionStatement","src":"20973:27:43"},{"expression":{"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11550,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"21014:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21019:17:43","memberName":"pendingUpdateHash","nodeType":"MemberAccess","referencedDeclaration":1100,"src":"21014:22:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":11555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21047:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21039:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21039:7:43","typeDescriptions":{}}},"id":11556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21039:10:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21014:35:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11558,"nodeType":"ExpressionStatement","src":"21014:35:43"}]}},{"assignments":[11562],"declarations":[{"constant":false,"id":11562,"mutability":"mutable","name":"oldMaxClaim","nameLocation":"21078:11:43","nodeType":"VariableDeclaration","scope":11607,"src":"21070:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11561,"name":"uint256","nodeType":"ElementaryTypeName","src":"21070:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11565,"initialValue":{"expression":{"id":11563,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"21092:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21097:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"21092:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21070:39:43"},{"assignments":[11567],"declarations":[{"constant":false,"id":11567,"mutability":"mutable","name":"newMaxClaim","nameLocation":"21127:11:43","nodeType":"VariableDeclaration","scope":11607,"src":"21119:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11566,"name":"uint256","nodeType":"ElementaryTypeName","src":"21119:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11572,"initialValue":{"arguments":[{"id":11570,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11473,"src":"21177:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":11568,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"21141:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:15:43","memberName":"getMaxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1045,"src":"21141:35:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes16_$returns$_t_uint256_$","typeString":"function (bytes16) view external returns (uint256)"}},"id":11571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21141:48:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21119:70:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11573,"name":"oldMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"21204:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11574,"name":"newMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11567,"src":"21219:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21204:26:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11606,"nodeType":"IfStatement","src":"21200:270:43","trueBody":{"id":11605,"nodeType":"Block","src":"21232:238:43","statements":[{"expression":{"id":11580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11576,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"21246:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21251:12:43","memberName":"maxNextClaim","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"21246:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11579,"name":"newMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11567,"src":"21266:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21246:31:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11581,"nodeType":"ExpressionStatement","src":"21246:31:43"},{"expression":{"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":11582,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"21291:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21293:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"21291:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11587,"indexExpression":{"expression":{"id":11584,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"21308:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21313:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"21308:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21291:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":11588,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"21324:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21326:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"21324:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11592,"indexExpression":{"expression":{"id":11590,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11478,"src":"21341:4:43","typeDescriptions":{"typeIdentifier":"t_struct$_AgreementInfo_$1101_storage_ptr","typeString":"struct IIndexingAgreementManager.AgreementInfo storage pointer"}},"id":11591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21346:7:43","memberName":"indexer","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"21341:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21324:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11593,"name":"oldMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"21357:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21324:44:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11595,"name":"newMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11567,"src":"21371:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21324:58:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21291:91:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11598,"nodeType":"ExpressionStatement","src":"21291:91:43"},{"eventCall":{"arguments":[{"id":11600,"name":"agreementId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11473,"src":"21421:11:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"id":11601,"name":"oldMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11562,"src":"21434:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11602,"name":"newMaxClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11567,"src":"21447:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11599,"name":"AgreementReconciled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"21401:19:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes16_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes16,uint256,uint256)"}},"id":11603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21401:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11604,"nodeType":"EmitStatement","src":"21396:63:43"}]}}]},"documentation":{"id":11468,"nodeType":"StructuredDocumentation","src":"19826:151:43","text":" @notice Reconcile a single agreement's max next claim against on-chain state\n @param agreementId The agreement ID to reconcile"},"id":11608,"implemented":true,"kind":"function","modifiers":[],"name":"_reconcileAgreement","nameLocation":"20036:19:43","nodeType":"FunctionDefinition","parameters":{"id":11474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11471,"mutability":"mutable","name":"$","nameLocation":"20096:1:43","nodeType":"VariableDeclaration","scope":11608,"src":"20056:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11470,"nodeType":"UserDefinedTypeName","pathNode":{"id":11469,"name":"IndexingAgreementManagerStorage","nameLocations":["20056:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"20056:31:43"},"referencedDeclaration":10132,"src":"20056:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"},{"constant":false,"id":11473,"mutability":"mutable","name":"agreementId","nameLocation":"20107:11:43","nodeType":"VariableDeclaration","scope":11608,"src":"20099:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":11472,"name":"bytes16","nodeType":"ElementaryTypeName","src":"20099:7:43","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"20055:64:43"},"returnParameters":{"id":11475,"nodeType":"ParameterList","parameters":[],"src":"20128:0:43"},"scope":11715,"src":"20027:1449:43","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":11704,"nodeType":"Block","src":"21923:735:43","statements":[{"assignments":[11618],"declarations":[{"constant":false,"id":11618,"mutability":"mutable","name":"currentBalance","nameLocation":"21941:14:43","nodeType":"VariableDeclaration","scope":11704,"src":"21933:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11617,"name":"uint256","nodeType":"ElementaryTypeName","src":"21933:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11631,"initialValue":{"arguments":[{"arguments":[{"id":11623,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21993:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":11622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21985:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"21985:7:43","typeDescriptions":{}}},"id":11624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21985:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":11627,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"22008:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22000:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11625,"name":"address","nodeType":"ElementaryTypeName","src":"22000:7:43","typeDescriptions":{}}},"id":11628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22000:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11629,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"22030:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11619,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"21958:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21974:10:43","memberName":"getBalance","nodeType":"MemberAccess","referencedDeclaration":605,"src":"21958:26:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address,address) view external returns (uint256)"}},"id":11630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21958:80:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21933:105:43"},{"assignments":[11633],"declarations":[{"constant":false,"id":11633,"mutability":"mutable","name":"required","nameLocation":"22056:8:43","nodeType":"VariableDeclaration","scope":11704,"src":"22048:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11632,"name":"uint256","nodeType":"ElementaryTypeName","src":"22048:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11638,"initialValue":{"baseExpression":{"expression":{"id":11634,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11612,"src":"22067:1:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage storage pointer"}},"id":11635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22069:14:43","memberName":"requiredEscrow","nodeType":"MemberAccess","referencedDeclaration":10120,"src":"22067:16:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11637,"indexExpression":{"id":11636,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"22084:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22067:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22048:44:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11639,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"22107:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11640,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11633,"src":"22124:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22107:25:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11703,"nodeType":"IfStatement","src":"22103:549:43","trueBody":{"id":11702,"nodeType":"Block","src":"22134:518:43","statements":[{"assignments":[11643],"declarations":[{"constant":false,"id":11643,"mutability":"mutable","name":"deficit","nameLocation":"22156:7:43","nodeType":"VariableDeclaration","scope":11702,"src":"22148:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11642,"name":"uint256","nodeType":"ElementaryTypeName","src":"22148:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11647,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11644,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11633,"src":"22166:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11645,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"22177:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22166:25:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22148:43:43"},{"assignments":[11649],"declarations":[{"constant":false,"id":11649,"mutability":"mutable","name":"available","nameLocation":"22213:9:43","nodeType":"VariableDeclaration","scope":11702,"src":"22205:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11648,"name":"uint256","nodeType":"ElementaryTypeName","src":"22205:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11657,"initialValue":{"arguments":[{"arguments":[{"id":11654,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22255:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IndexingAgreementManager_$11715","typeString":"contract IndexingAgreementManager"}],"id":11653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22247:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11652,"name":"address","nodeType":"ElementaryTypeName","src":"22247:7:43","typeDescriptions":{}}},"id":11655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22247:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11650,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"22225:11:43","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":11651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22237:9:43","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":3349,"src":"22225:21:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":11656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22225:36:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22205:56:43"},{"assignments":[11659],"declarations":[{"constant":false,"id":11659,"mutability":"mutable","name":"toDeposit","nameLocation":"22283:9:43","nodeType":"VariableDeclaration","scope":11702,"src":"22275:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11658,"name":"uint256","nodeType":"ElementaryTypeName","src":"22275:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11666,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11660,"name":"deficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11643,"src":"22295:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11661,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11649,"src":"22305:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22295:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":11664,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11649,"src":"22327:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22295:41:43","trueExpression":{"id":11663,"name":"deficit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11643,"src":"22317:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22275:61:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":11667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22354:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11668,"name":"toDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"22358:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22354:13:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11701,"nodeType":"IfStatement","src":"22350:292:43","trueBody":{"id":11700,"nodeType":"Block","src":"22369:273:43","statements":[{"expression":{"arguments":[{"arguments":[{"id":11675,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"22415:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}],"id":11674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22407:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11673,"name":"address","nodeType":"ElementaryTypeName","src":"22407:7:43","typeDescriptions":{}}},"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22407:24:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11677,"name":"toDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"22433:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11670,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"22387:11:43","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22399:7:43","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":3379,"src":"22387:19:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22387:56:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11679,"nodeType":"ExpressionStatement","src":"22387:56:43"},{"expression":{"arguments":[{"arguments":[{"id":11685,"name":"RECURRING_COLLECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"22493:19:43","typeDescriptions":{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRecurringCollector_$1076","typeString":"contract IRecurringCollector"}],"id":11684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22485:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11683,"name":"address","nodeType":"ElementaryTypeName","src":"22485:7:43","typeDescriptions":{}}},"id":11686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22485:28:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11687,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"22515:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11688,"name":"toDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"22524:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11680,"name":"PAYMENTS_ESCROW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10099,"src":"22461:15:43","typeDescriptions":{"typeIdentifier":"t_contract$_IPaymentsEscrow_$606","typeString":"contract IPaymentsEscrow"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22477:7:43","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":536,"src":"22461:23:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22461:73:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11690,"nodeType":"ExpressionStatement","src":"22461:73:43"},{"eventCall":{"arguments":[{"id":11692,"name":"indexer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"22570:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11693,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11633,"src":"22579:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11694,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"22589:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11695,"name":"toDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"22606:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22589:26:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11697,"name":"toDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"22617:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11691,"name":"EscrowFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"22557:12:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":11698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22557:70:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11699,"nodeType":"EmitStatement","src":"22552:75:43"}]}}]}}]},"documentation":{"id":11609,"nodeType":"StructuredDocumentation","src":"21482:302:43","text":" @notice Fund the escrow for an indexer if there is a deficit\n @dev Uses per-call approve (not infinite allowance). Safe because PaymentsEscrow\n is a trusted protocol contract that transfers exactly the approved amount.\n @param indexer The indexer to fund escrow for"},"id":11705,"implemented":true,"kind":"function","modifiers":[],"name":"_fundEscrow","nameLocation":"21843:11:43","nodeType":"FunctionDefinition","parameters":{"id":11615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11612,"mutability":"mutable","name":"$","nameLocation":"21895:1:43","nodeType":"VariableDeclaration","scope":11705,"src":"21855:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11611,"nodeType":"UserDefinedTypeName","pathNode":{"id":11610,"name":"IndexingAgreementManagerStorage","nameLocations":["21855:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"21855:31:43"},"referencedDeclaration":10132,"src":"21855:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"},{"constant":false,"id":11614,"mutability":"mutable","name":"indexer","nameLocation":"21906:7:43","nodeType":"VariableDeclaration","scope":11705,"src":"21898:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11613,"name":"address","nodeType":"ElementaryTypeName","src":"21898:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21854:60:43"},"returnParameters":{"id":11616,"nodeType":"ParameterList","parameters":[],"src":"21923:0:43"},"scope":11715,"src":"21834:824:43","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":11713,"nodeType":"Block","src":"22864:158:43","statements":[{"AST":{"nativeSrc":"22939:77:43","nodeType":"YulBlock","src":"22939:77:43","statements":[{"nativeSrc":"22953:53:43","nodeType":"YulAssignment","src":"22953:53:43","value":{"name":"INDEXING_AGREEMENT_MANAGER_STORAGE_LOCATION","nativeSrc":"22963:43:43","nodeType":"YulIdentifier","src":"22963:43:43"},"variableNames":[{"name":"$.slot","nativeSrc":"22953:6:43","nodeType":"YulIdentifier","src":"22953:6:43"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":11710,"isOffset":false,"isSlot":true,"src":"22953:6:43","suffix":"slot","valueSize":1},{"declaration":10135,"isOffset":false,"isSlot":false,"src":"22963:43:43","valueSize":1}],"id":11712,"nodeType":"InlineAssembly","src":"22930:86:43"}]},"documentation":{"id":11706,"nodeType":"StructuredDocumentation","src":"22664:62:43","text":" @notice Get the ERC-7201 namespaced storage"},"id":11714,"implemented":true,"kind":"function","modifiers":[],"name":"_getStorage","nameLocation":"22785:11:43","nodeType":"FunctionDefinition","parameters":{"id":11707,"nodeType":"ParameterList","parameters":[],"src":"22796:2:43"},"returnParameters":{"id":11711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11710,"mutability":"mutable","name":"$","nameLocation":"22861:1:43","nodeType":"VariableDeclaration","scope":11714,"src":"22821:41:43","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"},"typeName":{"id":11709,"nodeType":"UserDefinedTypeName","pathNode":{"id":11708,"name":"IndexingAgreementManagerStorage","nameLocations":["22821:31:43"],"nodeType":"IdentifierPath","referencedDeclaration":10132,"src":"22821:31:43"},"referencedDeclaration":10132,"src":"22821:31:43","typeDescriptions":{"typeIdentifier":"t_struct$_IndexingAgreementManagerStorage_$10132_storage_ptr","typeString":"struct IndexingAgreementManager.IndexingAgreementManagerStorage"}},"visibility":"internal"}],"src":"22820:43:43"},"scope":11715,"src":"22776:246:43","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":11716,"src":"1851:21173:43","usedErrors":[1177,1182,1189,1196,1201,1206,1211,1216,1221,1226,2708,2711,3044,3047,3215,3218,14018,14021],"usedEvents":[1110,1117,1124,1131,1140,1149,1160,1167,1172,1617,1620,2716,3036,3041,3227,3236,3245]}],"src":"46:22979:43"},"id":43},"project/contracts/allocate/IssuanceAllocator.sol":{"ast":{"absolutePath":"project/contracts/allocate/IssuanceAllocator.sol","exportedSymbols":{"Allocation":[1591],"AllocationTarget":[1599],"BaseUpgradeable":[14164],"DistributionState":[1607],"ERC165Upgradeable":[3205],"IERC165":[5012],"IIssuanceAllocationAdministration":[1469],"IIssuanceAllocationData":[1485],"IIssuanceAllocationDistribution":[1507],"IIssuanceAllocationStatus":[1565],"IIssuanceTarget":[1631],"IssuanceAllocator":[13968],"ReentrancyGuardTransient":[4523],"SelfMintingEventMode":[1573],"TargetIssuancePerBlock":[1583]},"id":13969,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":11717,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"46:23:44"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocatorTypes.sol","id":11723,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1608,"src":"71:214:44","symbolAliases":[{"foreign":{"id":11718,"name":"TargetIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"84:22:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11719,"name":"Allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"112:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11720,"name":"AllocationTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"128:16:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11721,"name":"DistributionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"150:17:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":11722,"name":"SelfMintingEventMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"173:20:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol","id":11725,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1508,"src":"286:140:44","symbolAliases":[{"foreign":{"id":11724,"name":"IIssuanceAllocationDistribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"295:31:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol","id":11727,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1470,"src":"427:144:44","symbolAliases":[{"foreign":{"id":11726,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"436:33:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationStatus.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationStatus.sol","id":11729,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1566,"src":"572:128:44","symbolAliases":[{"foreign":{"id":11728,"name":"IIssuanceAllocationStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"581:25:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationData.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationData.sol","id":11731,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1486,"src":"701:124:44","symbolAliases":[{"foreign":{"id":11730,"name":"IIssuanceAllocationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"710:23:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":11733,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":1632,"src":"826:108:44","symbolAliases":[{"foreign":{"id":11732,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"835:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"project/contracts/common/BaseUpgradeable.sol","file":"../common/BaseUpgradeable.sol","id":11735,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":14165,"src":"935:64:44","symbolAliases":[{"foreign":{"id":11734,"name":"BaseUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14164,"src":"944:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","id":11737,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":4524,"src":"1000:102:44","symbolAliases":[{"foreign":{"id":11736,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"1009:24:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":11739,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":5013,"src":"1103:82:44","symbolAliases":[{"foreign":{"id":11738,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"1112:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/introspection/ERC165Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","id":11741,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13969,"sourceUnit":3206,"src":"1233:114:44","symbolAliases":[{"foreign":{"id":11740,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"1242:17:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11743,"name":"BaseUpgradeable","nameLocations":["9290:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"9290:15:44"},"id":11744,"nodeType":"InheritanceSpecifier","src":"9290:15:44"},{"baseName":{"id":11745,"name":"ReentrancyGuardTransient","nameLocations":["9311:24:44"],"nodeType":"IdentifierPath","referencedDeclaration":4523,"src":"9311:24:44"},"id":11746,"nodeType":"InheritanceSpecifier","src":"9311:24:44"},{"baseName":{"id":11747,"name":"IIssuanceAllocationDistribution","nameLocations":["9341:31:44"],"nodeType":"IdentifierPath","referencedDeclaration":1507,"src":"9341:31:44"},"id":11748,"nodeType":"InheritanceSpecifier","src":"9341:31:44"},{"baseName":{"id":11749,"name":"IIssuanceAllocationAdministration","nameLocations":["9378:33:44"],"nodeType":"IdentifierPath","referencedDeclaration":1469,"src":"9378:33:44"},"id":11750,"nodeType":"InheritanceSpecifier","src":"9378:33:44"},{"baseName":{"id":11751,"name":"IIssuanceAllocationStatus","nameLocations":["9417:25:44"],"nodeType":"IdentifierPath","referencedDeclaration":1565,"src":"9417:25:44"},"id":11752,"nodeType":"InheritanceSpecifier","src":"9417:25:44"},{"baseName":{"id":11753,"name":"IIssuanceAllocationData","nameLocations":["9448:23:44"],"nodeType":"IdentifierPath","referencedDeclaration":1485,"src":"9448:23:44"},"id":11754,"nodeType":"InheritanceSpecifier","src":"9448:23:44"}],"canonicalName":"IssuanceAllocator","contractDependencies":[],"contractKind":"contract","documentation":{"id":11742,"nodeType":"StructuredDocumentation","src":"1372:7883:44","text":" @title IssuanceAllocator\n @author Edge & Node\n @notice This contract is responsible for allocating token issuance to different components\n of the protocol. It calculates issuance for all targets based on their configured rates\n (tokens per block) and handles minting for allocator-minting targets.\n @dev The contract maintains a 100% allocation invariant through a default target mechanism:\n - A default target exists at targetAddresses[0] (initialized to address(0))\n - The default target automatically receives any unallocated portion of issuance\n - Total allocation across all targets always equals issuancePerBlock (tracked as absolute rates)\n - The default target address can be changed via setDefaultTarget()\n - When the default address is address(0), this 'unallocated' portion is not minted\n - Regular targets cannot be set as the default target address\n @dev The contract supports two types of allocation for each target:\n 1. Allocator-minting allocation: The IssuanceAllocator calculates and mints tokens directly to targets\n    for this portion of their allocation.\n 2. Self-minting allocation: The IssuanceAllocator calculates issuance but does not mint tokens directly.\n    Instead, targets are expected to call `getTargetIssuancePerBlock` to determine their self-minting\n    issuance amount and mint tokens themselves. This feature is primarily intended for backwards\n    compatibility with existing contracts like the RewardsManager.\n Each target can have both allocator-minting and self-minting allocations. New targets are expected\n to use allocator-minting allocation to provide more robust control over token issuance through\n the IssuanceAllocator. The self-minting allocation is intended only for backwards compatibility\n with existing contracts.\n @dev Pause Behavior:\n - Allocator-minting: Completely suspended during pause. No tokens minted, lastDistributionBlock frozen.\n   When unpaused, distributes retroactively using current rates for entire undistributed period. (Distribution will be triggered by calling distributeIssuance() when not paused.)\n - Self-minting: Continues tracking via events and accumulation during pause. Accumulated self-minting\n   reduces allocator-minting budget when distribution resumes, ensuring total issuance conservation.\n - Ongoing accumulation: Once accumulation starts (during pause), continues through any unpaused\n   periods until distribution clears it, preventing loss of self-minting allowances across pause cycles.\n - Tracking divergence: lastSelfMintingBlock advances during pause (for allowance tracking) while\n   lastDistributionBlock stays frozen (no allocator-minting). This is intentional and correct.\n @dev Issuance Accounting Invariants:\n The contract maintains strict accounting to ensure total token issuance never exceeds the configured\n issuancePerBlock rate over any time period. This section provides the mathematical foundation for\n understanding the relationship between self-minting and allocator-minting.\n Key Invariants:\n 1. Allocation Completeness: For all blocks b, totalAllocatorRate_b + totalSelfMintingRate_b = issuancePerBlock_b\n    This ensures 100% of issuance is always allocated across all targets.\n 2. Self-Minting Accumulation: For any undistributed block range [fromBlock, toBlock]:\n    selfMintingOffset = Σ(totalSelfMintingRate_b) for all b in range\n    where totalSelfMintingRate_b is the end-state rate for block b.\n 3. Rate Constraint: For all blocks b, totalSelfMintingRate_b ≤ issuancePerBlock_b\n    This follows from invariant (1) since 0 ≤ totalAllocatorRate_b.\n 4. Issuance Upper Bound: For any distribution period with blocks = toBlock - fromBlock + 1:\n    Let issuancePerBlock_final = current issuancePerBlock at distribution time\n    From invariants (2) and (3):\n      selfMintingOffset ≤ Σ(issuancePerBlock_b)\n    Allocator-minting budget for period:\n      available = max(0, issuancePerBlock_final * blocks - selfMintingOffset)\n    Total minted (self + allocator) for period:\n      ≤ max(selfMintingOffset, issuancePerBlock_final * blocks)\n      ≤ Σ(issuancePerBlock_b)\n    Therefore, total issuance never exceeds the sum of configured rates during the period.\n 5. Offset Reconciliation: During pending distribution, selfMintingOffset is adjusted to account for\n    the period's issuance budget. When distribution catches up to current block, the offset is cleared.\n    Any remaining offset when cleared represents self-minting that occurred beyond what the final\n    issuancePerBlock rate would allow for the period. This is acceptable because:\n    a) Self-minting targets were operating under rates that were valid at the time\n    b) The total minted still respects the Σ(issuancePerBlock_b) bound (invariant 4)\n    c) Clearing the offset prevents it from affecting future distributions\n    d) The SelfMintingOffsetReconciled event provides visibility into all offset adjustments\n This design ensures that even when issuancePerBlock or allocation rates change over time, and even\n when self-minting targets mint independently, the total tokens minted never exceeds the sum of\n configured issuance rates during the period.\n @dev There are a number of scenarios where the IssuanceAllocator could run into issues, including:\n 1. The targetAddresses array could grow large enough that it exceeds the gas limit when calling distributeIssuance.\n 2. When notifying targets of allocation changes the calls to `beforeIssuanceAllocationChange` could exceed the gas limit.\n 3. Target contracts could revert when notifying them of changes via `beforeIssuanceAllocationChange`.\n While in practice the IssuanceAllocator is expected to have a relatively small number of trusted targets, and the\n gas limit is expected to be high enough to handle the above scenarios, the following would allow recovery:\n 1. The contract can be paused, which can help make the recovery process easier to manage.\n 2. The GOVERNOR_ROLE can directly trigger change notification to individual targets. As there is per target\n    tracking of the lastChangeNotifiedBlock, this can reduce the gas cost of other operations and allow\n    for graceful recovery.\n 3. If a target reverts when notifying it of changes or notifying it is too expensive, the GOVERNOR_ROLE can use `forceTargetNoChangeNotificationBlock()`\n    to skip notifying that particular target of changes.\n In combination these should allow recovery from gas limit issues or malfunctioning targets, with fine-grained control over\n which targets are notified of changes and when.\n @dev Reentrancy Protection:\n The contract code is designed to be reentrant-safe and should be carefully reviewed and maintained\n to preserve this property. However, reentrancy guards (using transient storage per EIP-1153) are\n applied to governance functions that modify configuration or state as an additional layer of defense.\n This provides protection against potential issues if the multi-sig governor role were to have known\n signatures that could be exploited by malicious actors to trigger reentrant calls.\n The `distributeIssuance()` function intentionally does NOT have a reentrancy guard to allow\n legitimate use cases where targets call it during notifications (e.g., to claim pending issuance\n before allocation changes). This is safe because distributeIssuance() has built-in block-tracking\n protection (preventing double-distribution in the same block), makes no external calls that could\n expose inconsistent state, and does not modify allocations.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program."},"fullyImplemented":true,"id":13968,"linearizedBaseContracts":[13968,1485,1565,1469,1507,4523,14164,1661,3165,2691,2465,3205,5012,3314,3288,3005,2959],"name":"IssuanceAllocator","nameLocation":"9265:17:44","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":11755,"nodeType":"StructuredDocumentation","src":"9511:59:44","text":"@notice ERC-7201 storage location for IssuanceAllocator"},"id":11779,"mutability":"constant","name":"ISSUANCE_ALLOCATOR_STORAGE_LOCATION","nameLocation":"9600:35:44","nodeType":"VariableDeclaration","scope":13968,"src":"9575:252:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9575:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":11778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"677261706870726f746f636f6c2e73746f726167652e49737375616e6365416c6c6f6361746f72","id":11763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9740:41:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd5","typeString":"literal_string \"graphprotocol.storage.IssuanceAllocator\""},"value":"graphprotocol.storage.IssuanceAllocator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_109cdeb08b6fcb52a0f8a35af1bf023afdacdc6e602b08424b2171d0f4fa3cd5","typeString":"literal_string \"graphprotocol.storage.IssuanceAllocator\""}],"id":11762,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9730:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9730:52:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9722:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11760,"name":"uint256","nodeType":"ElementaryTypeName","src":"9722:7:44","typeDescriptions":{}}},"id":11765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9722:61:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9786:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9722:65:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9711:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9715:6:44","memberName":"encode","nodeType":"MemberAccess","src":"9711:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9711:77:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11757,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9701:9:44","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9701:88:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"9804:23:44","subExpression":{"arguments":[{"arguments":[{"hexValue":"30786666","id":11774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9821:4:44","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":11773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9813:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11772,"name":"uint256","nodeType":"ElementaryTypeName","src":"9813:7:44","typeDescriptions":{}}},"id":11775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9813:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9805:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9805:7:44","typeDescriptions":{}}},"id":11776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9805:22:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9701:126:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"canonicalName":"IssuanceAllocator.IssuanceAllocatorData","documentation":{"id":11780,"nodeType":"StructuredDocumentation","src":"9834:1363:44","text":"@notice Main storage structure for IssuanceAllocator using ERC-7201 namespaced storage\n @param issuancePerBlock Total issuance per block across all targets\n @param lastDistributionBlock Last block when allocator-minting issuance was distributed\n @param lastSelfMintingBlock Last block when self-minting was advanced\n @param selfMintingOffset Self-minting that offsets allocator-minting budget (accumulates during pause, clears on distribution)\n @param allocationTargets Mapping of target addresses to their allocation data\n @param targetAddresses Array of all target addresses (including default target at index 0)\n @param totalSelfMintingRate Total self-minting rate (tokens per block) across all targets\n @param selfMintingEventMode Controls self-minting event emission behavior (PerTarget, Aggregate, or None)\n @dev Design invariant: totalAllocatorRate + totalSelfMintingRate == issuancePerBlock (always 100% allocated)\n @dev Design invariant: targetAddresses[0] is always the default target address\n @dev Design invariant: 1 <= targetAddresses.length (default target always exists)\n @dev Design invariant: default target (targetAddresses[0]) is automatically adjusted to maintain 100% total\n @custom:storage-location erc7201:graphprotocol.storage.IssuanceAllocator"},"id":11802,"members":[{"constant":false,"id":11782,"mutability":"mutable","name":"issuancePerBlock","nameLocation":"11249:16:44","nodeType":"VariableDeclaration","scope":11802,"src":"11241:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11781,"name":"uint256","nodeType":"ElementaryTypeName","src":"11241:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11784,"mutability":"mutable","name":"lastDistributionBlock","nameLocation":"11283:21:44","nodeType":"VariableDeclaration","scope":11802,"src":"11275:29:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11783,"name":"uint256","nodeType":"ElementaryTypeName","src":"11275:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11786,"mutability":"mutable","name":"lastSelfMintingBlock","nameLocation":"11322:20:44","nodeType":"VariableDeclaration","scope":11802,"src":"11314:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11785,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11788,"mutability":"mutable","name":"selfMintingOffset","nameLocation":"11360:17:44","nodeType":"VariableDeclaration","scope":11802,"src":"11352:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11787,"name":"uint256","nodeType":"ElementaryTypeName","src":"11352:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11793,"mutability":"mutable","name":"allocationTargets","nameLocation":"11424:17:44","nodeType":"VariableDeclaration","scope":11802,"src":"11387:54:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget)"},"typeName":{"id":11792,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":11789,"name":"address","nodeType":"ElementaryTypeName","src":"11395:7:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"11387:36:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":11791,"nodeType":"UserDefinedTypeName","pathNode":{"id":11790,"name":"AllocationTarget","nameLocations":["11406:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"11406:16:44"},"referencedDeclaration":1599,"src":"11406:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}}},"visibility":"internal"},{"constant":false,"id":11796,"mutability":"mutable","name":"targetAddresses","nameLocation":"11461:15:44","nodeType":"VariableDeclaration","scope":11802,"src":"11451:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11794,"name":"address","nodeType":"ElementaryTypeName","src":"11451:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11795,"nodeType":"ArrayTypeName","src":"11451:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":11798,"mutability":"mutable","name":"totalSelfMintingRate","nameLocation":"11494:20:44","nodeType":"VariableDeclaration","scope":11802,"src":"11486:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11797,"name":"uint256","nodeType":"ElementaryTypeName","src":"11486:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11801,"mutability":"mutable","name":"selfMintingEventMode","nameLocation":"11545:20:44","nodeType":"VariableDeclaration","scope":11802,"src":"11524:41:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":11800,"nodeType":"UserDefinedTypeName","pathNode":{"id":11799,"name":"SelfMintingEventMode","nameLocations":["11524:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"11524:20:44"},"referencedDeclaration":1573,"src":"11524:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"name":"IssuanceAllocatorData","nameLocation":"11209:21:44","nodeType":"StructDefinition","scope":13968,"src":"11202:370:44","visibility":"public"},{"body":{"id":11814,"nodeType":"Block","src":"11787:298:44","statements":[{"assignments":[11810],"declarations":[{"constant":false,"id":11810,"mutability":"mutable","name":"slot","nameLocation":"11924:4:44","nodeType":"VariableDeclaration","scope":11814,"src":"11916:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11916:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11812,"initialValue":{"id":11811,"name":"ISSUANCE_ALLOCATOR_STORAGE_LOCATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11779,"src":"11931:35:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11916:50:44"},{"AST":{"nativeSrc":"12041:38:44","nodeType":"YulBlock","src":"12041:38:44","statements":[{"nativeSrc":"12055:14:44","nodeType":"YulAssignment","src":"12055:14:44","value":{"name":"slot","nativeSrc":"12065:4:44","nodeType":"YulIdentifier","src":"12065:4:44"},"variableNames":[{"name":"$.slot","nativeSrc":"12055:6:44","nodeType":"YulIdentifier","src":"12055:6:44"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":11807,"isOffset":false,"isSlot":true,"src":"12055:6:44","suffix":"slot","valueSize":1},{"declaration":11810,"isOffset":false,"isSlot":false,"src":"12065:4:44","valueSize":1}],"id":11813,"nodeType":"InlineAssembly","src":"12032:47:44"}]},"documentation":{"id":11803,"nodeType":"StructuredDocumentation","src":"11578:109:44","text":" @notice Returns the storage struct for IssuanceAllocator\n @return $ contract storage"},"id":11815,"implemented":true,"kind":"function","modifiers":[],"name":"_getIssuanceAllocatorStorage","nameLocation":"11701:28:44","nodeType":"FunctionDefinition","parameters":{"id":11804,"nodeType":"ParameterList","parameters":[],"src":"11729:2:44"},"returnParameters":{"id":11808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11807,"mutability":"mutable","name":"$","nameLocation":"11784:1:44","nodeType":"VariableDeclaration","scope":11815,"src":"11754:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":11806,"nodeType":"UserDefinedTypeName","pathNode":{"id":11805,"name":"IssuanceAllocatorData","nameLocations":["11754:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"11754:21:44"},"referencedDeclaration":11802,"src":"11754:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"src":"11753:33:44"},"scope":13968,"src":"11692:393:44","stateMutability":"pure","virtual":false,"visibility":"private"},{"documentation":{"id":11816,"nodeType":"StructuredDocumentation","src":"12119:68:44","text":"@notice Thrown when attempting to add a target with zero address"},"errorSelector":"4549d8f6","id":11818,"name":"TargetAddressCannotBeZero","nameLocation":"12198:25:44","nodeType":"ErrorDefinition","parameters":{"id":11817,"nodeType":"ParameterList","parameters":[],"src":"12223:2:44"},"src":"12192:34:44"},{"documentation":{"id":11819,"nodeType":"StructuredDocumentation","src":"12232:219:44","text":"@notice Thrown when the total allocation would exceed available budget\n @param requested The total requested allocation (allocator + self minting)\n @param available The available budget for this target"},"errorSelector":"2c5261c6","id":11825,"name":"InsufficientAllocationAvailable","nameLocation":"12462:31:44","nodeType":"ErrorDefinition","parameters":{"id":11824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11821,"mutability":"mutable","name":"requested","nameLocation":"12502:9:44","nodeType":"VariableDeclaration","scope":11825,"src":"12494:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11820,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11823,"mutability":"mutable","name":"available","nameLocation":"12521:9:44","nodeType":"VariableDeclaration","scope":11825,"src":"12513:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11822,"name":"uint256","nodeType":"ElementaryTypeName","src":"12513:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12493:38:44"},"src":"12456:76:44"},{"documentation":{"id":11826,"nodeType":"StructuredDocumentation","src":"12538:284:44","text":"@notice Thrown when attempting to decrease issuance rate without sufficient unallocated budget\n @param oldRate The current issuance rate\n @param newRate The proposed new issuance rate\n @param unallocated The unallocated budget available to absorb the decrease"},"errorSelector":"b1087cac","id":11834,"name":"InsufficientUnallocatedForRateDecrease","nameLocation":"12833:38:44","nodeType":"ErrorDefinition","parameters":{"id":11833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11828,"mutability":"mutable","name":"oldRate","nameLocation":"12880:7:44","nodeType":"VariableDeclaration","scope":11834,"src":"12872:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11827,"name":"uint256","nodeType":"ElementaryTypeName","src":"12872:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11830,"mutability":"mutable","name":"newRate","nameLocation":"12897:7:44","nodeType":"VariableDeclaration","scope":11834,"src":"12889:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11829,"name":"uint256","nodeType":"ElementaryTypeName","src":"12889:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11832,"mutability":"mutable","name":"unallocated","nameLocation":"12914:11:44","nodeType":"VariableDeclaration","scope":11834,"src":"12906:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11831,"name":"uint256","nodeType":"ElementaryTypeName","src":"12906:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12871:55:44"},"src":"12827:100:44"},{"documentation":{"id":11835,"nodeType":"StructuredDocumentation","src":"12933:155:44","text":"@notice Thrown when a target does not support the IIssuanceTarget interface\n @param target The target address that doesn't support the interface"},"errorSelector":"a5fe8615","id":11839,"name":"TargetDoesNotSupportIIssuanceTarget","nameLocation":"13099:35:44","nodeType":"ErrorDefinition","parameters":{"id":11838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11837,"mutability":"mutable","name":"target","nameLocation":"13143:6:44","nodeType":"VariableDeclaration","scope":11839,"src":"13135:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11836,"name":"address","nodeType":"ElementaryTypeName","src":"13135:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13134:16:44"},"src":"13093:58:44"},{"documentation":{"id":11840,"nodeType":"StructuredDocumentation","src":"13157:283:44","text":"@notice Thrown when toBlockNumber is out of valid range for accumulation\n @param toBlock The invalid block number provided\n @param minBlock The minimum valid block number (lastDistributionBlock)\n @param maxBlock The maximum valid block number (current block)"},"errorSelector":"a0d2b9db","id":11848,"name":"ToBlockOutOfRange","nameLocation":"13451:17:44","nodeType":"ErrorDefinition","parameters":{"id":11847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11842,"mutability":"mutable","name":"toBlock","nameLocation":"13477:7:44","nodeType":"VariableDeclaration","scope":11848,"src":"13469:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11841,"name":"uint256","nodeType":"ElementaryTypeName","src":"13469:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11844,"mutability":"mutable","name":"minBlock","nameLocation":"13494:8:44","nodeType":"VariableDeclaration","scope":11848,"src":"13486:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11843,"name":"uint256","nodeType":"ElementaryTypeName","src":"13486:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11846,"mutability":"mutable","name":"maxBlock","nameLocation":"13512:8:44","nodeType":"VariableDeclaration","scope":11848,"src":"13504:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11845,"name":"uint256","nodeType":"ElementaryTypeName","src":"13504:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13468:53:44"},"src":"13445:77:44"},{"documentation":{"id":11849,"nodeType":"StructuredDocumentation","src":"13528:138:44","text":"@notice Thrown when attempting to set allocation for the default target\n @param defaultTarget The address of the default target"},"errorSelector":"fda6c187","id":11853,"name":"CannotSetAllocationForDefaultTarget","nameLocation":"13677:35:44","nodeType":"ErrorDefinition","parameters":{"id":11852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11851,"mutability":"mutable","name":"defaultTarget","nameLocation":"13721:13:44","nodeType":"VariableDeclaration","scope":11853,"src":"13713:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11850,"name":"address","nodeType":"ElementaryTypeName","src":"13713:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13712:23:44"},"src":"13671:65:44"},{"documentation":{"id":11854,"nodeType":"StructuredDocumentation","src":"13742:167:44","text":"@notice Thrown when attempting to set default target address to a normally allocated target\n @param target The target address that already has an allocation"},"errorSelector":"f158185d","id":11858,"name":"CannotSetDefaultToAllocatedTarget","nameLocation":"13920:33:44","nodeType":"ErrorDefinition","parameters":{"id":11857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11856,"mutability":"mutable","name":"target","nameLocation":"13962:6:44","nodeType":"VariableDeclaration","scope":11858,"src":"13954:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11855,"name":"address","nodeType":"ElementaryTypeName","src":"13954:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13953:16:44"},"src":"13914:56:44"},{"anonymous":false,"documentation":{"id":11859,"nodeType":"StructuredDocumentation","src":"13997:372:44","text":"@notice Emitted when issuance is distributed to a target\n @param target The address of the target that received issuance\n @param amount The amount of tokens distributed\n @param fromBlock First block included in this distribution (inclusive)\n @param toBlock Last block included in this distribution (inclusive). Range is [fromBlock, toBlock]"},"eventSelector":"0c56d855d8df534c916b78eac3522e5fafd59f48799c4a97d42e80f6e0898960","id":11869,"name":"IssuanceDistributed","nameLocation":"14380:19:44","nodeType":"EventDefinition","parameters":{"id":11868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11861,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"14425:6:44","nodeType":"VariableDeclaration","scope":11869,"src":"14409:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11860,"name":"address","nodeType":"ElementaryTypeName","src":"14409:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11863,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"14449:6:44","nodeType":"VariableDeclaration","scope":11869,"src":"14441:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11862,"name":"uint256","nodeType":"ElementaryTypeName","src":"14441:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11865,"indexed":true,"mutability":"mutable","name":"fromBlock","nameLocation":"14481:9:44","nodeType":"VariableDeclaration","scope":11869,"src":"14465:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11864,"name":"uint256","nodeType":"ElementaryTypeName","src":"14465:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11867,"indexed":true,"mutability":"mutable","name":"toBlock","nameLocation":"14516:7:44","nodeType":"VariableDeclaration","scope":11869,"src":"14500:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11866,"name":"uint256","nodeType":"ElementaryTypeName","src":"14500:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14399:130:44"},"src":"14374:156:44"},{"anonymous":false,"documentation":{"id":11870,"nodeType":"StructuredDocumentation","src":"14579:332:44","text":"@notice Emitted when a target's allocation is updated\n @param target The address of the target whose allocation was updated\n @param newAllocatorMintingRate The new allocator-minting rate (tokens per block) for the target\n @param newSelfMintingRate The new self-minting rate (tokens per block) for the target"},"eventSelector":"1bd3f0d2f1001a856d81215ceb86c548bdbc3bf52480a08978f8c3ea6e2bd421","id":11878,"name":"TargetAllocationUpdated","nameLocation":"14922:23:44","nodeType":"EventDefinition","parameters":{"id":11877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11872,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"14962:6:44","nodeType":"VariableDeclaration","scope":11878,"src":"14946:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11871,"name":"address","nodeType":"ElementaryTypeName","src":"14946:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11874,"indexed":false,"mutability":"mutable","name":"newAllocatorMintingRate","nameLocation":"14978:23:44","nodeType":"VariableDeclaration","scope":11878,"src":"14970:31:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11873,"name":"uint256","nodeType":"ElementaryTypeName","src":"14970:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11876,"indexed":false,"mutability":"mutable","name":"newSelfMintingRate","nameLocation":"15011:18:44","nodeType":"VariableDeclaration","scope":11878,"src":"15003:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11875,"name":"uint256","nodeType":"ElementaryTypeName","src":"15003:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14945:85:44"},"src":"14916:115:44"},{"anonymous":false,"documentation":{"id":11879,"nodeType":"StructuredDocumentation","src":"15120:201:44","text":"@notice Emitted when the issuance per block is updated\n @param oldIssuancePerBlock The previous issuance per block amount\n @param newIssuancePerBlock The new issuance per block amount"},"eventSelector":"2925be3e6d4b2cbcec6c06d5060fb3b53f160410555e45ee0a1f6dc7ae9b24c0","id":11885,"name":"IssuancePerBlockUpdated","nameLocation":"15332:23:44","nodeType":"EventDefinition","parameters":{"id":11884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11881,"indexed":false,"mutability":"mutable","name":"oldIssuancePerBlock","nameLocation":"15364:19:44","nodeType":"VariableDeclaration","scope":11885,"src":"15356:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11880,"name":"uint256","nodeType":"ElementaryTypeName","src":"15356:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11883,"indexed":false,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"15393:19:44","nodeType":"VariableDeclaration","scope":11885,"src":"15385:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11882,"name":"uint256","nodeType":"ElementaryTypeName","src":"15385:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15355:58:44"},"src":"15326:88:44"},{"anonymous":false,"documentation":{"id":11886,"nodeType":"StructuredDocumentation","src":"15517:173:44","text":"@notice Emitted when the default target is updated\n @param oldAddress The previous default target address\n @param newAddress The new default target address"},"eventSelector":"00f06471e88e0bc1db6b6126efdb09f80b597e6ddc145ff0dcabd12afab4ec57","id":11892,"name":"DefaultTargetUpdated","nameLocation":"15701:20:44","nodeType":"EventDefinition","parameters":{"id":11891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11888,"indexed":true,"mutability":"mutable","name":"oldAddress","nameLocation":"15738:10:44","nodeType":"VariableDeclaration","scope":11892,"src":"15722:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11887,"name":"address","nodeType":"ElementaryTypeName","src":"15722:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11890,"indexed":true,"mutability":"mutable","name":"newAddress","nameLocation":"15766:10:44","nodeType":"VariableDeclaration","scope":11892,"src":"15750:26:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11889,"name":"address","nodeType":"ElementaryTypeName","src":"15750:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15721:56:44"},"src":"15695:83:44"},{"anonymous":false,"documentation":{"id":11893,"nodeType":"StructuredDocumentation","src":"15784:415:44","text":"@notice Emitted when self-minting allowance is calculated for a target\n @param target The address of the target with self-minting allocation\n @param amount The amount of tokens available for self-minting\n @param fromBlock First block included in this allowance period (inclusive)\n @param toBlock Last block included in this allowance period (inclusive). Range is [fromBlock, toBlock]"},"eventSelector":"a34db09d4126dd8dcd1d29f3df65c01dcac405127546e380add77fedca459ba7","id":11903,"name":"IssuanceSelfMintAllowance","nameLocation":"16210:25:44","nodeType":"EventDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"16261:6:44","nodeType":"VariableDeclaration","scope":11903,"src":"16245:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11894,"name":"address","nodeType":"ElementaryTypeName","src":"16245:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11897,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"16285:6:44","nodeType":"VariableDeclaration","scope":11903,"src":"16277:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11896,"name":"uint256","nodeType":"ElementaryTypeName","src":"16277:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11899,"indexed":true,"mutability":"mutable","name":"fromBlock","nameLocation":"16317:9:44","nodeType":"VariableDeclaration","scope":11903,"src":"16301:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11898,"name":"uint256","nodeType":"ElementaryTypeName","src":"16301:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11901,"indexed":true,"mutability":"mutable","name":"toBlock","nameLocation":"16352:7:44","nodeType":"VariableDeclaration","scope":11903,"src":"16336:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11900,"name":"uint256","nodeType":"ElementaryTypeName","src":"16336:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16235:130:44"},"src":"16204:162:44"},{"anonymous":false,"documentation":{"id":11904,"nodeType":"StructuredDocumentation","src":"16460:859:44","text":"@notice Emitted when self-minting offset is reconciled during pending distribution\n @param offsetBefore The self-minting offset before reconciliation\n @param offsetAfter The self-minting offset after reconciliation (0 when caught up to current block)\n @param totalForPeriod The total issuance budget for the distributed period\n @param fromBlock First block in the distribution period (inclusive)\n @param toBlock Last block in the distribution period (inclusive)\n @dev This event provides visibility into the accounting reconciliation between self-minting\n and allocator-minting budgets during pending distribution. When offsetAfter is 0, the contract\n has fully caught up with distribution. When offsetAfter > 0, there remains accumulated offset\n that will be applied to future distributions."},"eventSelector":"1a45018bdab6039c806fac73d617b3bc5c6a2a0f22f6f90d2ca202b083087f99","id":11916,"name":"SelfMintingOffsetReconciled","nameLocation":"17330:27:44","nodeType":"EventDefinition","parameters":{"id":11915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11906,"indexed":false,"mutability":"mutable","name":"offsetBefore","nameLocation":"17375:12:44","nodeType":"VariableDeclaration","scope":11916,"src":"17367:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11905,"name":"uint256","nodeType":"ElementaryTypeName","src":"17367:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11908,"indexed":false,"mutability":"mutable","name":"offsetAfter","nameLocation":"17405:11:44","nodeType":"VariableDeclaration","scope":11916,"src":"17397:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11907,"name":"uint256","nodeType":"ElementaryTypeName","src":"17397:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11910,"indexed":false,"mutability":"mutable","name":"totalForPeriod","nameLocation":"17434:14:44","nodeType":"VariableDeclaration","scope":11916,"src":"17426:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11909,"name":"uint256","nodeType":"ElementaryTypeName","src":"17426:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11912,"indexed":true,"mutability":"mutable","name":"fromBlock","nameLocation":"17474:9:44","nodeType":"VariableDeclaration","scope":11916,"src":"17458:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11911,"name":"uint256","nodeType":"ElementaryTypeName","src":"17458:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11914,"indexed":true,"mutability":"mutable","name":"toBlock","nameLocation":"17509:7:44","nodeType":"VariableDeclaration","scope":11916,"src":"17493:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11913,"name":"uint256","nodeType":"ElementaryTypeName","src":"17493:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17357:165:44"},"src":"17324:199:44"},{"anonymous":false,"documentation":{"id":11917,"nodeType":"StructuredDocumentation","src":"17618:603:44","text":"@notice Emitted when self-minting offset accumulates during pause or catch-up\n @param offsetBefore The self-minting offset before accumulation\n @param offsetAfter The self-minting offset after accumulation\n @param fromBlock First block in the accumulation period (inclusive)\n @param toBlock Last block in the accumulation period (inclusive)\n @dev This event provides visibility into offset growth during pause periods or while catching up\n after unpause. Together with SelfMintingOffsetReconciled, provides complete accounting of all\n offset changes."},"eventSelector":"0539ce444a515b8aa8769802297761fbec80b5b543c617714bf5e0611cf669db","id":11927,"name":"SelfMintingOffsetAccumulated","nameLocation":"18232:28:44","nodeType":"EventDefinition","parameters":{"id":11926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11919,"indexed":false,"mutability":"mutable","name":"offsetBefore","nameLocation":"18278:12:44","nodeType":"VariableDeclaration","scope":11927,"src":"18270:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11918,"name":"uint256","nodeType":"ElementaryTypeName","src":"18270:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11921,"indexed":false,"mutability":"mutable","name":"offsetAfter","nameLocation":"18308:11:44","nodeType":"VariableDeclaration","scope":11927,"src":"18300:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11920,"name":"uint256","nodeType":"ElementaryTypeName","src":"18300:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11923,"indexed":true,"mutability":"mutable","name":"fromBlock","nameLocation":"18345:9:44","nodeType":"VariableDeclaration","scope":11927,"src":"18329:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11922,"name":"uint256","nodeType":"ElementaryTypeName","src":"18329:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11925,"indexed":true,"mutability":"mutable","name":"toBlock","nameLocation":"18380:7:44","nodeType":"VariableDeclaration","scope":11927,"src":"18364:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11924,"name":"uint256","nodeType":"ElementaryTypeName","src":"18364:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18260:133:44"},"src":"18226:168:44"},{"anonymous":false,"documentation":{"id":11928,"nodeType":"StructuredDocumentation","src":"18444:499:44","text":"@notice Emitted when self-minting allowance is calculated in aggregate mode\n @param totalAmount The total amount of tokens available for self-minting across all targets\n @param fromBlock First block included in this allowance period (inclusive)\n @param toBlock Last block included in this allowance period (inclusive)\n @dev This event is emitted when selfMintingEventMode is Aggregate, providing a single event\n instead of per-target events to reduce gas costs"},"eventSelector":"cef44ce1a1fc7ca1f3078daf79d3b60646d0e751bc72a69bff12f66c4aef3b8d","id":11936,"name":"IssuanceSelfMintAllowanceAggregate","nameLocation":"18954:34:44","nodeType":"EventDefinition","parameters":{"id":11935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11930,"indexed":false,"mutability":"mutable","name":"totalAmount","nameLocation":"18997:11:44","nodeType":"VariableDeclaration","scope":11936,"src":"18989:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11929,"name":"uint256","nodeType":"ElementaryTypeName","src":"18989:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11932,"indexed":true,"mutability":"mutable","name":"fromBlock","nameLocation":"19026:9:44","nodeType":"VariableDeclaration","scope":11936,"src":"19010:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11931,"name":"uint256","nodeType":"ElementaryTypeName","src":"19010:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11934,"indexed":true,"mutability":"mutable","name":"toBlock","nameLocation":"19053:7:44","nodeType":"VariableDeclaration","scope":11936,"src":"19037:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11933,"name":"uint256","nodeType":"ElementaryTypeName","src":"19037:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18988:73:44"},"src":"18948:114:44"},{"anonymous":false,"documentation":{"id":11937,"nodeType":"StructuredDocumentation","src":"19111:166:44","text":"@notice Emitted when self-minting event mode is changed\n @param oldMode The previous event emission mode\n @param newMode The new event emission mode"},"eventSelector":"3f59746e46bfb9af931035055d53b82d1b70968466065162b7dbf8e998aee629","id":11945,"name":"SelfMintingEventModeUpdated","nameLocation":"19288:27:44","nodeType":"EventDefinition","parameters":{"id":11944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11940,"indexed":false,"mutability":"mutable","name":"oldMode","nameLocation":"19337:7:44","nodeType":"VariableDeclaration","scope":11945,"src":"19316:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":11939,"nodeType":"UserDefinedTypeName","pathNode":{"id":11938,"name":"SelfMintingEventMode","nameLocations":["19316:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"19316:20:44"},"referencedDeclaration":1573,"src":"19316:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"},{"constant":false,"id":11943,"indexed":false,"mutability":"mutable","name":"newMode","nameLocation":"19367:7:44","nodeType":"VariableDeclaration","scope":11945,"src":"19346:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":11942,"nodeType":"UserDefinedTypeName","pathNode":{"id":11941,"name":"SelfMintingEventMode","nameLocations":["19346:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"19346:20:44"},"referencedDeclaration":1573,"src":"19346:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"src":"19315:60:44"},"src":"19282:94:44"},{"body":{"id":11954,"nodeType":"Block","src":"19792:2:44","statements":[]},"documentation":{"id":11946,"nodeType":"StructuredDocumentation","src":"19408:317:44","text":" @notice Constructor for the IssuanceAllocator contract\n @dev This contract is upgradeable, but we use the constructor to pass the Graph Token address\n to the base contract.\n @param _graphToken Address of the Graph Token contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":11955,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11951,"name":"_graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"19779:11:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11952,"kind":"baseConstructorSpecifier","modifierName":{"id":11950,"name":"BaseUpgradeable","nameLocations":["19763:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":14164,"src":"19763:15:44"},"nodeType":"ModifierInvocation","src":"19763:28:44"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11948,"mutability":"mutable","name":"_graphToken","nameLocation":"19750:11:44","nodeType":"VariableDeclaration","scope":11955,"src":"19742:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11947,"name":"address","nodeType":"ElementaryTypeName","src":"19742:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19741:21:44"},"returnParameters":{"id":11953,"nodeType":"ParameterList","parameters":[],"src":"19792:0:44"},"scope":13968,"src":"19730:64:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11998,"nodeType":"Block","src":"20642:689:44","statements":[{"expression":{"arguments":[{"id":11964,"name":"_governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11958,"src":"20675:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11963,"name":"__BaseUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14065,"src":"20652:22:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20652:33:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11966,"nodeType":"ExpressionStatement","src":"20652:33:44"},{"assignments":[11969],"declarations":[{"constant":false,"id":11969,"mutability":"mutable","name":"$","nameLocation":"20726:1:44","nodeType":"VariableDeclaration","scope":11998,"src":"20696:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":11968,"nodeType":"UserDefinedTypeName","pathNode":{"id":11967,"name":"IssuanceAllocatorData","nameLocations":["20696:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"20696:21:44"},"referencedDeclaration":11802,"src":"20696:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":11972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11970,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"20730:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20730:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20696:64:44"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":11980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20952:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20944:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11978,"name":"address","nodeType":"ElementaryTypeName","src":"20944:7:44","typeDescriptions":{}}},"id":11981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":11973,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"20921:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":11976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20923:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"20921:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":11977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20939:4:44","memberName":"push","nodeType":"MemberAccess","src":"20921:22:44","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20921:34:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11983,"nodeType":"ExpressionStatement","src":"20921:34:44"},{"expression":{"id":11989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11984,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"20966:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":11986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20968:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"20966:22:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11987,"name":"SelfMintingEventMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"20991:20:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SelfMintingEventMode_$1573_$","typeString":"type(enum SelfMintingEventMode)"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21012:9:44","memberName":"PerTarget","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"20991:30:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"src":"20966:55:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"id":11990,"nodeType":"ExpressionStatement","src":"20966:55:44"},{"expression":{"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11991,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"21286:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":11993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21288:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"21286:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11994,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21312:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21318:6:44","memberName":"number","nodeType":"MemberAccess","src":"21312:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21286:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11997,"nodeType":"ExpressionStatement","src":"21286:38:44"}]},"documentation":{"id":11956,"nodeType":"StructuredDocumentation","src":"19829:740:44","text":" @notice Initialize the IssuanceAllocator contract\n @param _governor Address that will have the GOVERNOR_ROLE\n @dev Initializes with a default target at index 0 set to address(0)\n @dev Default target will receive all unallocated issuance (initially 0 until rate is set)\n @dev lastDistributionBlock is set to block.number as a safety guard against pausing before\n configuration. lastSelfMintingBlock defaults to 0. issuancePerBlock is 0. Once\n setIssuancePerBlock() is called, it triggers _distributeIssuance() which updates\n lastDistributionBlock to current block, establishing the starting point for issuance tracking.\n @dev selfMintingEventMode is initialized to PerTarget"},"functionSelector":"c4d66de8","id":11999,"implemented":true,"kind":"function","modifiers":[{"id":11961,"kind":"modifierInvocation","modifierName":{"id":11960,"name":"initializer","nameLocations":["20630:11:44"],"nodeType":"IdentifierPath","referencedDeclaration":2799,"src":"20630:11:44"},"nodeType":"ModifierInvocation","src":"20630:11:44"}],"name":"initialize","nameLocation":"20583:10:44","nodeType":"FunctionDefinition","parameters":{"id":11959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11958,"mutability":"mutable","name":"_governor","nameLocation":"20602:9:44","nodeType":"VariableDeclaration","scope":11999,"src":"20594:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11957,"name":"address","nodeType":"ElementaryTypeName","src":"20594:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20593:19:44"},"returnParameters":{"id":11962,"nodeType":"ParameterList","parameters":[],"src":"20642:0:44"},"scope":13968,"src":"20574:757:44","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[14163],"body":{"id":12041,"nodeType":"Block","src":"21577:380:44","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12008,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"21606:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12010,"name":"IIssuanceAllocationDistribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"21626:31:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationDistribution_$1507_$","typeString":"type(contract IIssuanceAllocationDistribution)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationDistribution_$1507_$","typeString":"type(contract IIssuanceAllocationDistribution)"}],"id":12009,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21621:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21621:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceAllocationDistribution_$1507","typeString":"type(contract IIssuanceAllocationDistribution)"}},"id":12012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21659:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"21621:49:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21606:64:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12014,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"21686:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12016,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"21706:33:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}],"id":12015,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21701:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":12018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21741:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"21701:51:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21686:66:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21606:146:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12021,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"21768:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12023,"name":"IIssuanceAllocationStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"21788:25:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationStatus_$1565_$","typeString":"type(contract IIssuanceAllocationStatus)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationStatus_$1565_$","typeString":"type(contract IIssuanceAllocationStatus)"}],"id":12022,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21783:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21783:31:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceAllocationStatus_$1565","typeString":"type(contract IIssuanceAllocationStatus)"}},"id":12025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21815:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"21783:43:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21768:58:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21606:220:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12028,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"21842:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12030,"name":"IIssuanceAllocationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"21862:23:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationData_$1485_$","typeString":"type(contract IIssuanceAllocationData)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationData_$1485_$","typeString":"type(contract IIssuanceAllocationData)"}],"id":12029,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"21857:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21857:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceAllocationData_$1485","typeString":"type(contract IIssuanceAllocationData)"}},"id":12032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21887:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"21857:41:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21842:56:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21606:292:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12037,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12002,"src":"21938:11:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":12035,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"21914:5:44","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_IssuanceAllocator_$13968_$","typeString":"type(contract super IssuanceAllocator)"}},"id":12036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21920:17:44","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":14163,"src":"21914:23:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":12038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21914:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21606:344:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12007,"id":12040,"nodeType":"Return","src":"21587:363:44"}]},"documentation":{"id":12000,"nodeType":"StructuredDocumentation","src":"21370:111:44","text":" @inheritdoc ERC165Upgradeable\n @dev Supports the four IssuanceAllocator sub-interfaces"},"functionSelector":"01ffc9a7","id":12042,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"21495:17:44","nodeType":"FunctionDefinition","overrides":{"id":12004,"nodeType":"OverrideSpecifier","overrides":[],"src":"21553:8:44"},"parameters":{"id":12003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12002,"mutability":"mutable","name":"interfaceId","nameLocation":"21520:11:44","nodeType":"VariableDeclaration","scope":12042,"src":"21513:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12001,"name":"bytes4","nodeType":"ElementaryTypeName","src":"21513:6:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"21512:20:44"},"returnParameters":{"id":12007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12042,"src":"21571:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12005,"name":"bool","nodeType":"ElementaryTypeName","src":"21571:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21570:6:44"},"scope":13968,"src":"21486:471:44","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1497],"body":{"id":12066,"nodeType":"Block","src":"23760:385:44","statements":[{"assignments":[12051],"declarations":[{"constant":false,"id":12051,"mutability":"mutable","name":"$","nameLocation":"23800:1:44","nodeType":"VariableDeclaration","scope":12066,"src":"23770:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12050,"nodeType":"UserDefinedTypeName","pathNode":{"id":12049,"name":"IssuanceAllocatorData","nameLocations":["23770:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"23770:21:44"},"referencedDeclaration":11802,"src":"23770:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12054,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12052,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"23804:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23804:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23770:64:44"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12055,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"24060:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24062:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"24060:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12057,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24087:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24093:6:44","memberName":"number","nodeType":"MemberAccess","src":"24087:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24060:39:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12062,"name":"_distributeIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"24117:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":12063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24117:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24060:78:44","trueExpression":{"expression":{"id":12060,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24102:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24108:6:44","memberName":"number","nodeType":"MemberAccess","src":"24102:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12048,"id":12065,"nodeType":"Return","src":"24053:85:44"}]},"documentation":{"id":12043,"nodeType":"StructuredDocumentation","src":"21963:1726:44","text":" @inheritdoc IIssuanceAllocationDistribution\n @dev Implementation details:\n - For allocator-minting targets, tokens are minted and transferred directly to targets based on their allocation rate\n - For self-minting targets (like the legacy RewardsManager), it does not mint tokens directly. Instead, these contracts are expected to handle minting themselves\n - The self-minting allocation is intended only for backwards compatibility with existing contracts and should not be used for new targets. New targets should use allocator-minting allocation to ensure robust control of token issuance by the IssuanceAllocator\n @dev Pause behavior:\n - When paused: Self-minting allowances tracked via events/accumulation, but no allocator-minting tokens distributed.\n   Returns lastDistributionBlock (frozen at pause point). lastSelfMintingBlock advances to current block.\n - When unpaused: Normal distribution if no accumulated self-minting, otherwise retroactive distribution\n   using current rates for entire undistributed period, with accumulated self-minting reducing allocator budget.\n - Unless paused, always advances lastDistributionBlock to block.number, even if no issuance to distribute.\n @dev Reentrancy: This function intentionally does NOT have a reentrancy guard to allow targets to\n legitimately call it during notifications (e.g., to claim pending issuance before their allocation changes).\n This is safe because the function has built-in block-tracking protection that prevents double-distribution\n within the same block, makes no external calls that could expose inconsistent state, and does not modify allocations."},"functionSelector":"49bdfcb0","id":12067,"implemented":true,"kind":"function","modifiers":[],"name":"distributeIssuance","nameLocation":"23703:18:44","nodeType":"FunctionDefinition","overrides":{"id":12045,"nodeType":"OverrideSpecifier","overrides":[],"src":"23733:8:44"},"parameters":{"id":12044,"nodeType":"ParameterList","parameters":[],"src":"23721:2:44"},"returnParameters":{"id":12048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12067,"src":"23751:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12046,"name":"uint256","nodeType":"ElementaryTypeName","src":"23751:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23750:9:44"},"scope":13968,"src":"23694:451:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12229,"nodeType":"Block","src":"24703:2251:44","statements":[{"assignments":[12073],"declarations":[{"constant":false,"id":12073,"mutability":"mutable","name":"$","nameLocation":"24743:1:44","nodeType":"VariableDeclaration","scope":12229,"src":"24713:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12072,"nodeType":"UserDefinedTypeName","pathNode":{"id":12071,"name":"IssuanceAllocatorData","nameLocations":["24713:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"24713:21:44"},"referencedDeclaration":11802,"src":"24713:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12076,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12074,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"24747:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24747:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24713:64:44"},{"assignments":[12078],"declarations":[{"constant":false,"id":12078,"mutability":"mutable","name":"previousBlock","nameLocation":"24796:13:44","nodeType":"VariableDeclaration","scope":12229,"src":"24788:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12077,"name":"uint256","nodeType":"ElementaryTypeName","src":"24788:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12081,"initialValue":{"expression":{"id":12079,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"24812:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24814:20:44","memberName":"lastSelfMintingBlock","nodeType":"MemberAccess","referencedDeclaration":11786,"src":"24812:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24788:46:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12082,"name":"previousBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"24848:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12083,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24865:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24871:6:44","memberName":"number","nodeType":"MemberAccess","src":"24865:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24848:29:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12087,"nodeType":"IfStatement","src":"24844:42:44","trueBody":{"functionReturnParameters":12070,"id":12086,"nodeType":"Return","src":"24879:7:44"}},{"assignments":[12089],"declarations":[{"constant":false,"id":12089,"mutability":"mutable","name":"blocks","nameLocation":"24904:6:44","nodeType":"VariableDeclaration","scope":12229,"src":"24896:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12088,"name":"uint256","nodeType":"ElementaryTypeName","src":"24896:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12094,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12090,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24913:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24919:6:44","memberName":"number","nodeType":"MemberAccess","src":"24913:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12092,"name":"previousBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"24928:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24913:28:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24896:45:44"},{"assignments":[12096],"declarations":[{"constant":false,"id":12096,"mutability":"mutable","name":"fromBlock","nameLocation":"24959:9:44","nodeType":"VariableDeclaration","scope":12229,"src":"24951:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12095,"name":"uint256","nodeType":"ElementaryTypeName","src":"24951:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12100,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12097,"name":"previousBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12078,"src":"24971:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24987:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24971:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24951:37:44"},{"assignments":[12102],"declarations":[{"constant":false,"id":12102,"mutability":"mutable","name":"offsetBefore","nameLocation":"25356:12:44","nodeType":"VariableDeclaration","scope":12229,"src":"25348:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12101,"name":"uint256","nodeType":"ElementaryTypeName","src":"25348:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12105,"initialValue":{"expression":{"id":12103,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25371:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25373:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"25371:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25348:42:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12106,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[14141],"referencedDeclaration":14141,"src":"25404:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":12107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25404:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25416:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12109,"name":"offsetBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"25420:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25416:16:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25404:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12137,"nodeType":"IfStatement","src":"25400:357:44","trueBody":{"id":12136,"nodeType":"Block","src":"25434:323:44","statements":[{"expression":{"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12112,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25448:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25450:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"25448:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12115,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25471:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25473:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"25471:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12117,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12089,"src":"25496:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25471:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25448:54:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12120,"nodeType":"ExpressionStatement","src":"25448:54:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12121,"name":"offsetBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"25584:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12122,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25600:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25602:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"25600:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25584:35:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12135,"nodeType":"IfStatement","src":"25580:167:44","trueBody":{"id":12134,"nodeType":"Block","src":"25621:126:44","statements":[{"eventCall":{"arguments":[{"id":12126,"name":"offsetBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"25673:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25687:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25689:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"25687:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12129,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12096,"src":"25708:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12130,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25719:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25725:6:44","memberName":"number","nodeType":"MemberAccess","src":"25719:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12125,"name":"SelfMintingOffsetAccumulated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11927,"src":"25644:28:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25644:88:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12133,"nodeType":"EmitStatement","src":"25639:93:44"}]}}]}},{"expression":{"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12138,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25766:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25768:20:44","memberName":"lastSelfMintingBlock","nodeType":"MemberAccess","referencedDeclaration":11786,"src":"25766:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12141,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25791:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25797:6:44","memberName":"number","nodeType":"MemberAccess","src":"25791:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25766:37:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12144,"nodeType":"ExpressionStatement","src":"25766:37:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25878:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12146,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25882:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25884:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"25882:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25878:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12228,"nodeType":"IfStatement","src":"25874:1074:44","trueBody":{"id":12227,"nodeType":"Block","src":"25906:1042:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"id":12153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12149,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"25924:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25926:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"25924:22:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12151,"name":"SelfMintingEventMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"25950:20:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SelfMintingEventMode_$1573_$","typeString":"type(enum SelfMintingEventMode)"}},"id":12152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25971:9:44","memberName":"PerTarget","nodeType":"MemberAccess","referencedDeclaration":1572,"src":"25950:30:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"src":"25924:56:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12205,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"26561:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26563:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"26561:22:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12207,"name":"SelfMintingEventMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"26587:20:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SelfMintingEventMode_$1573_$","typeString":"type(enum SelfMintingEventMode)"}},"id":12208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26608:9:44","memberName":"Aggregate","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"26587:30:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"src":"26561:56:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12225,"nodeType":"IfStatement","src":"26557:308:44","trueBody":{"id":12224,"nodeType":"Block","src":"26619:246:44","statements":[{"assignments":[12211],"declarations":[{"constant":false,"id":12211,"mutability":"mutable","name":"totalAmount","nameLocation":"26710:11:44","nodeType":"VariableDeclaration","scope":12224,"src":"26702:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12210,"name":"uint256","nodeType":"ElementaryTypeName","src":"26702:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12216,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12212,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"26724:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26726:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"26724:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12214,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12089,"src":"26749:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26724:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26702:53:44"},{"eventCall":{"arguments":[{"id":12218,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12211,"src":"26813:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12219,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12096,"src":"26826:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12220,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26837:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26843:6:44","memberName":"number","nodeType":"MemberAccess","src":"26837:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12217,"name":"IssuanceSelfMintAllowanceAggregate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11936,"src":"26778:34:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":12222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26778:72:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12223,"nodeType":"EmitStatement","src":"26773:77:44"}]}},"id":12226,"nodeType":"IfStatement","src":"25920:945:44","trueBody":{"id":12204,"nodeType":"Block","src":"25982:569:44","statements":[{"body":{"id":12202,"nodeType":"Block","src":"26116:421:44","statements":[{"assignments":[12167],"declarations":[{"constant":false,"id":12167,"mutability":"mutable","name":"target","nameLocation":"26146:6:44","nodeType":"VariableDeclaration","scope":12202,"src":"26138:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12166,"name":"address","nodeType":"ElementaryTypeName","src":"26138:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12172,"initialValue":{"baseExpression":{"expression":{"id":12168,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"26155:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26157:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"26155:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12171,"indexExpression":{"id":12170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12155,"src":"26173:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26155:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26138:37:44"},{"assignments":[12175],"declarations":[{"constant":false,"id":12175,"mutability":"mutable","name":"targetData","nameLocation":"26222:10:44","nodeType":"VariableDeclaration","scope":12202,"src":"26197:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12174,"nodeType":"UserDefinedTypeName","pathNode":{"id":12173,"name":"AllocationTarget","nameLocations":["26197:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"26197:16:44"},"referencedDeclaration":1599,"src":"26197:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12180,"initialValue":{"baseExpression":{"expression":{"id":12176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"26235:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26237:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"26235:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12179,"indexExpression":{"id":12178,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"26255:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26235:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26197:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26289:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12182,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"26293:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26304:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"26293:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26289:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12201,"nodeType":"IfStatement","src":"26285:234:44","trueBody":{"id":12200,"nodeType":"Block","src":"26321:198:44","statements":[{"assignments":[12186],"declarations":[{"constant":false,"id":12186,"mutability":"mutable","name":"amount","nameLocation":"26355:6:44","nodeType":"VariableDeclaration","scope":12200,"src":"26347:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12185,"name":"uint256","nodeType":"ElementaryTypeName","src":"26347:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12191,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12187,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"26364:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26375:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"26364:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12189,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12089,"src":"26393:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26364:35:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26347:52:44"},{"eventCall":{"arguments":[{"id":12193,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12167,"src":"26456:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12194,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12186,"src":"26464:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12195,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12096,"src":"26472:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12196,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26483:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26489:6:44","memberName":"number","nodeType":"MemberAccess","src":"26483:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12192,"name":"IssuanceSelfMintAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11903,"src":"26430:25:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":12198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26430:66:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12199,"nodeType":"EmitStatement","src":"26425:71:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12155,"src":"26081:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":12159,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12073,"src":"26085:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26087:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"26085:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26103:6:44","memberName":"length","nodeType":"MemberAccess","src":"26085:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26081:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12203,"initializationExpression":{"assignments":[12155],"declarations":[{"constant":false,"id":12155,"mutability":"mutable","name":"i","nameLocation":"26074:1:44","nodeType":"VariableDeclaration","scope":12203,"src":"26066:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12154,"name":"uint256","nodeType":"ElementaryTypeName","src":"26066:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12157,"initialValue":{"hexValue":"30","id":12156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26078:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26066:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26111:3:44","subExpression":{"id":12163,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12155,"src":"26113:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12165,"nodeType":"ExpressionStatement","src":"26111:3:44"},"nodeType":"ForStatement","src":"26061:476:44"}]}}]}}]},"documentation":{"id":12068,"nodeType":"StructuredDocumentation","src":"24151:503:44","text":" @notice Advances self-minting block and emits allowance events\n @dev When paused, accumulates self-minting amounts. This accumulation reduces the allocator-minting\n budget when distribution resumes, ensuring total issuance stays within bounds.\n When not paused, emits self-minting allowance events based on selfMintingEventMode.\n Called by _distributeIssuance() which anyone can call.\n Optimized for no-op cases: very cheap when already at current block."},"id":12230,"implemented":true,"kind":"function","modifiers":[],"name":"_advanceSelfMintingBlock","nameLocation":"24668:24:44","nodeType":"FunctionDefinition","parameters":{"id":12069,"nodeType":"ParameterList","parameters":[],"src":"24692:2:44"},"returnParameters":{"id":12070,"nodeType":"ParameterList","parameters":[],"src":"24703:0:44"},"scope":13968,"src":"24659:2295:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12263,"nodeType":"Block","src":"27690:287:44","statements":[{"assignments":[12238],"declarations":[{"constant":false,"id":12238,"mutability":"mutable","name":"$","nameLocation":"27730:1:44","nodeType":"VariableDeclaration","scope":12263,"src":"27700:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12237,"nodeType":"UserDefinedTypeName","pathNode":{"id":12236,"name":"IssuanceAllocatorData","nameLocations":["27700:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"27700:21:44"},"referencedDeclaration":11802,"src":"27700:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12241,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12239,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"27734:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27734:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27700:64:44"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12242,"name":"_advanceSelfMintingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"27774:24:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27774:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12244,"nodeType":"ExpressionStatement","src":"27774:26:44"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":12245,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[14141],"referencedDeclaration":14141,"src":"27815:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":12246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:8:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12250,"nodeType":"IfStatement","src":"27811:44:44","trueBody":{"expression":{"expression":{"id":12247,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"27832:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27834:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"27832:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12235,"id":12249,"nodeType":"Return","src":"27825:30:44"}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27873:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12252,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"27877:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27879:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"27877:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27873:23:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12259,"name":"_performNormalDistribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12374,"src":"27942:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27942:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"27873:97:44","trueExpression":{"arguments":[{"expression":{"id":12256,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27926:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27932:6:44","memberName":"number","nodeType":"MemberAccess","src":"27926:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12255,"name":"_distributePendingIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12553,"src":"27899:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27899:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12235,"id":12262,"nodeType":"Return","src":"27866:104:44"}]},"documentation":{"id":12231,"nodeType":"StructuredDocumentation","src":"26960:668:44","text":" @notice Internal implementation for `distributeIssuance`\n @dev Handles the actual distribution logic.\n @dev Always calls _advanceSelfMintingBlock() first (advances lastSelfMintingBlock, tracks self-minting).\n @dev If paused: Returns lastDistributionBlock without distributing allocator-minting (frozen state).\n @dev If unpaused: Chooses distribution path based on accumulated self-minting:\n      - With accumulation: retroactive distribution path (current rates, reduced allocator budget)\n      - Without accumulation: normal distribution path (simple per-block minting)\n @return Block number distributed to"},"id":12264,"implemented":true,"kind":"function","modifiers":[],"name":"_distributeIssuance","nameLocation":"27642:19:44","nodeType":"FunctionDefinition","parameters":{"id":12232,"nodeType":"ParameterList","parameters":[],"src":"27661:2:44"},"returnParameters":{"id":12235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12264,"src":"27681:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12233,"name":"uint256","nodeType":"ElementaryTypeName","src":"27681:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27680:9:44"},"scope":13968,"src":"27633:344:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12373,"nodeType":"Block","src":"28353:872:44","statements":[{"assignments":[12272],"declarations":[{"constant":false,"id":12272,"mutability":"mutable","name":"$","nameLocation":"28393:1:44","nodeType":"VariableDeclaration","scope":12373,"src":"28363:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12271,"nodeType":"UserDefinedTypeName","pathNode":{"id":12270,"name":"IssuanceAllocatorData","nameLocations":["28363:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"28363:21:44"},"referencedDeclaration":11802,"src":"28363:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12275,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12273,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"28397:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28397:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"28363:64:44"},{"assignments":[12277],"declarations":[{"constant":false,"id":12277,"mutability":"mutable","name":"blocks","nameLocation":"28446:6:44","nodeType":"VariableDeclaration","scope":12373,"src":"28438:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12276,"name":"uint256","nodeType":"ElementaryTypeName","src":"28438:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12278,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28455:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28461:6:44","memberName":"number","nodeType":"MemberAccess","src":"28455:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12280,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28470:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28472:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"28470:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28455:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28438:55:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12284,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12277,"src":"28507:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28517:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28507:11:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12290,"nodeType":"IfStatement","src":"28503:47:44","trueBody":{"expression":{"expression":{"id":12287,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28527:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28529:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"28527:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12269,"id":12289,"nodeType":"Return","src":"28520:30:44"}},{"assignments":[12292],"declarations":[{"constant":false,"id":12292,"mutability":"mutable","name":"fromBlock","nameLocation":"28569:9:44","nodeType":"VariableDeclaration","scope":12373,"src":"28561:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12291,"name":"uint256","nodeType":"ElementaryTypeName","src":"28561:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12297,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12293,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28581:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28583:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"28581:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28607:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28581:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28561:47:44"},{"body":{"id":12361,"nodeType":"Block","src":"28674:467:44","statements":[{"assignments":[12311],"declarations":[{"constant":false,"id":12311,"mutability":"mutable","name":"target","nameLocation":"28696:6:44","nodeType":"VariableDeclaration","scope":12361,"src":"28688:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12310,"name":"address","nodeType":"ElementaryTypeName","src":"28688:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12316,"initialValue":{"baseExpression":{"expression":{"id":12312,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28705:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28707:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"28705:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12315,"indexExpression":{"id":12314,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"28723:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28705:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28688:37:44"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12317,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"28743:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28761:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28753:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12318,"name":"address","nodeType":"ElementaryTypeName","src":"28753:7:44","typeDescriptions":{}}},"id":12321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28753:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28743:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12324,"nodeType":"IfStatement","src":"28739:34:44","trueBody":{"id":12323,"nodeType":"Continue","src":"28765:8:44"}},{"assignments":[12327],"declarations":[{"constant":false,"id":12327,"mutability":"mutable","name":"targetData","nameLocation":"28813:10:44","nodeType":"VariableDeclaration","scope":12361,"src":"28788:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12326,"nodeType":"UserDefinedTypeName","pathNode":{"id":12325,"name":"AllocationTarget","nameLocations":["28788:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"28788:16:44"},"referencedDeclaration":1599,"src":"28788:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12332,"initialValue":{"baseExpression":{"expression":{"id":12328,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28826:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28828:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"28826:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12331,"indexExpression":{"id":12330,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"28846:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28826:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"28788:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28871:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12334,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12327,"src":"28875:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28886:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"28875:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28871:35:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12360,"nodeType":"IfStatement","src":"28867:264:44","trueBody":{"id":12359,"nodeType":"Block","src":"28908:223:44","statements":[{"assignments":[12338],"declarations":[{"constant":false,"id":12338,"mutability":"mutable","name":"amount","nameLocation":"28934:6:44","nodeType":"VariableDeclaration","scope":12359,"src":"28926:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12337,"name":"uint256","nodeType":"ElementaryTypeName","src":"28926:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12339,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12327,"src":"28943:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28954:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"28943:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12341,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12277,"src":"28977:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28943:40:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28926:57:44"},{"expression":{"arguments":[{"id":12347,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"29018:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12348,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"29026:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12344,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"29001:11:44","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":12346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29013:4:44","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14179,"src":"29001:16:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":12349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29001:32:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12350,"nodeType":"ExpressionStatement","src":"29001:32:44"},{"eventCall":{"arguments":[{"id":12352,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"29076:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12353,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"29084:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12354,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12292,"src":"29092:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12355,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29103:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29109:6:44","memberName":"number","nodeType":"MemberAccess","src":"29103:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12351,"name":"IssuanceDistributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"29056:19:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":12357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29056:60:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12358,"nodeType":"EmitStatement","src":"29051:65:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12302,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"28639:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":12303,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"28643:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28645:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"28643:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28661:6:44","memberName":"length","nodeType":"MemberAccess","src":"28643:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28639:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12362,"initializationExpression":{"assignments":[12299],"declarations":[{"constant":false,"id":12299,"mutability":"mutable","name":"i","nameLocation":"28632:1:44","nodeType":"VariableDeclaration","scope":12362,"src":"28624:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12298,"name":"uint256","nodeType":"ElementaryTypeName","src":"28624:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12301,"initialValue":{"hexValue":"30","id":12300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28636:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28624:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28669:3:44","subExpression":{"id":12307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12299,"src":"28671:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12309,"nodeType":"ExpressionStatement","src":"28669:3:44"},"nodeType":"ForStatement","src":"28619:522:44"},{"expression":{"id":12368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12363,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12272,"src":"29151:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"29153:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"29151:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29177:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29183:6:44","memberName":"number","nodeType":"MemberAccess","src":"29177:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29151:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12369,"nodeType":"ExpressionStatement","src":"29151:38:44"},{"expression":{"expression":{"id":12370,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29206:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29212:6:44","memberName":"number","nodeType":"MemberAccess","src":"29206:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12269,"id":12372,"nodeType":"Return","src":"29199:19:44"}]},"documentation":{"id":12265,"nodeType":"StructuredDocumentation","src":"27983:301:44","text":" @notice Performs normal (non-pending) issuance distribution\n @dev Distributes allocator-minting issuance to all targets based on their rates\n @dev Assumes contract is not paused and pending issuance has already been distributed\n @return Block number distributed to"},"id":12374,"implemented":true,"kind":"function","modifiers":[],"name":"_performNormalDistribution","nameLocation":"28298:26:44","nodeType":"FunctionDefinition","parameters":{"id":12266,"nodeType":"ParameterList","parameters":[],"src":"28324:2:44"},"returnParameters":{"id":12269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12374,"src":"28344:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12267,"name":"uint256","nodeType":"ElementaryTypeName","src":"28344:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28343:9:44"},"scope":13968,"src":"28289:936:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[1444],"body":{"id":12391,"nodeType":"Block","src":"29410:64:44","statements":[{"expression":{"arguments":[{"expression":{"id":12387,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29454:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29460:6:44","memberName":"number","nodeType":"MemberAccess","src":"29454:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12386,"name":"_distributePendingIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12553,"src":"29427:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":12389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29427:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12385,"id":12390,"nodeType":"Return","src":"29420:47:44"}]},"documentation":{"id":12375,"nodeType":"StructuredDocumentation","src":"29231:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"3af5b073","id":12392,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12379,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"29364:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12380,"kind":"modifierInvocation","modifierName":{"id":12378,"name":"onlyRole","nameLocations":["29355:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"29355:8:44"},"nodeType":"ModifierInvocation","src":"29355:23:44"},{"id":12382,"kind":"modifierInvocation","modifierName":{"id":12381,"name":"nonReentrant","nameLocations":["29379:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"29379:12:44"},"nodeType":"ModifierInvocation","src":"29379:12:44"}],"name":"distributePendingIssuance","nameLocation":"29309:25:44","nodeType":"FunctionDefinition","overrides":{"id":12377,"nodeType":"OverrideSpecifier","overrides":[],"src":"29346:8:44"},"parameters":{"id":12376,"nodeType":"ParameterList","parameters":[],"src":"29334:2:44"},"returnParameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12392,"src":"29401:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12383,"name":"uint256","nodeType":"ElementaryTypeName","src":"29401:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29400:9:44"},"scope":13968,"src":"29300:174:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1452],"body":{"id":12410,"nodeType":"Block","src":"29694:65:44","statements":[{"expression":{"arguments":[{"id":12407,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12395,"src":"29738:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12406,"name":"_distributePendingIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12553,"src":"29711:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":12408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29711:41:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12405,"id":12409,"nodeType":"Return","src":"29704:48:44"}]},"documentation":{"id":12393,"nodeType":"StructuredDocumentation","src":"29480:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"52c0e18c","id":12411,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12399,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"29648:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12400,"kind":"modifierInvocation","modifierName":{"id":12398,"name":"onlyRole","nameLocations":["29639:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"29639:8:44"},"nodeType":"ModifierInvocation","src":"29639:23:44"},{"id":12402,"kind":"modifierInvocation","modifierName":{"id":12401,"name":"nonReentrant","nameLocations":["29663:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"29663:12:44"},"nodeType":"ModifierInvocation","src":"29663:12:44"}],"name":"distributePendingIssuance","nameLocation":"29558:25:44","nodeType":"FunctionDefinition","overrides":{"id":12397,"nodeType":"OverrideSpecifier","overrides":[],"src":"29630:8:44"},"parameters":{"id":12396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12395,"mutability":"mutable","name":"toBlockNumber","nameLocation":"29601:13:44","nodeType":"VariableDeclaration","scope":12411,"src":"29593:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12394,"name":"uint256","nodeType":"ElementaryTypeName","src":"29593:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29583:37:44"},"returnParameters":{"id":12405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12411,"src":"29685:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12403,"name":"uint256","nodeType":"ElementaryTypeName","src":"29685:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29684:9:44"},"scope":13968,"src":"29549:210:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12552,"nodeType":"Block","src":"30753:2184:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":12419,"name":"_advanceSelfMintingBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12230,"src":"30763:24:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":12420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30763:26:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12421,"nodeType":"ExpressionStatement","src":"30763:26:44"},{"assignments":[12424],"declarations":[{"constant":false,"id":12424,"mutability":"mutable","name":"$","nameLocation":"30829:1:44","nodeType":"VariableDeclaration","scope":12552,"src":"30799:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12423,"nodeType":"UserDefinedTypeName","pathNode":{"id":12422,"name":"IssuanceAllocatorData","nameLocations":["30799:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"30799:21:44"},"referencedDeclaration":11802,"src":"30799:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12427,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12425,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"30833:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30833:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"30799:64:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12429,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"30895:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30897:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"30895:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":12431,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"30922:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30895:40:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12433,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"30939:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":12434,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30956:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30962:6:44","memberName":"number","nodeType":"MemberAccess","src":"30956:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30939:29:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30895:73:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":12439,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"31048:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12440,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"31063:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31065:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"31063:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12442,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31088:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31094:6:44","memberName":"number","nodeType":"MemberAccess","src":"31088:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12438,"name":"ToBlockOutOfRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11848,"src":"31030:17:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256,uint256) pure returns (error)"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31030:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":12428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30874:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":12445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30874:237:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12446,"nodeType":"ExpressionStatement","src":"30874:237:44"},{"assignments":[12448],"declarations":[{"constant":false,"id":12448,"mutability":"mutable","name":"blocks","nameLocation":"31130:6:44","nodeType":"VariableDeclaration","scope":12552,"src":"31122:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12447,"name":"uint256","nodeType":"ElementaryTypeName","src":"31122:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12453,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12449,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"31139:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12450,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"31155:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31157:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"31155:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31139:39:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31122:56:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12454,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"31192:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31202:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31192:11:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12459,"nodeType":"IfStatement","src":"31188:37:44","trueBody":{"expression":{"id":12457,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"31212:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12418,"id":12458,"nodeType":"Return","src":"31205:20:44"}},{"assignments":[12461],"declarations":[{"constant":false,"id":12461,"mutability":"mutable","name":"totalForPeriod","nameLocation":"31601:14:44","nodeType":"VariableDeclaration","scope":12552,"src":"31593:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12460,"name":"uint256","nodeType":"ElementaryTypeName","src":"31593:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12466,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12462,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"31618:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31620:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"31618:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12464,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"31639:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31618:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31593:52:44"},{"assignments":[12468],"declarations":[{"constant":false,"id":12468,"mutability":"mutable","name":"selfMintingOffset","nameLocation":"31663:17:44","nodeType":"VariableDeclaration","scope":12552,"src":"31655:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12467,"name":"uint256","nodeType":"ElementaryTypeName","src":"31655:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12471,"initialValue":{"expression":{"id":12469,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"31683:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31685:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"31683:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31655:47:44"},{"assignments":[12473],"declarations":[{"constant":false,"id":12473,"mutability":"mutable","name":"available","nameLocation":"31721:9:44","nodeType":"VariableDeclaration","scope":12552,"src":"31713:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12472,"name":"uint256","nodeType":"ElementaryTypeName","src":"31713:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12482,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12474,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12468,"src":"31733:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12475,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12461,"src":"31753:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31733:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":12480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31807:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":12481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31733:75:44","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12477,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12461,"src":"31770:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12478,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12468,"src":"31787:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31770:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31713:95:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31823:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12484,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"31827:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31823:13:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12536,"nodeType":"IfStatement","src":"31819:937:44","trueBody":{"id":12535,"nodeType":"Block","src":"31838:918:44","statements":[{"assignments":[12487],"declarations":[{"constant":false,"id":12487,"mutability":"mutable","name":"defaultAddress","nameLocation":"32219:14:44","nodeType":"VariableDeclaration","scope":12535,"src":"32211:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12486,"name":"address","nodeType":"ElementaryTypeName","src":"32211:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12492,"initialValue":{"baseExpression":{"expression":{"id":12488,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"32236:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32238:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"32236:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12491,"indexExpression":{"hexValue":"30","id":12490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32254:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32236:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"32211:45:44"},{"assignments":[12495],"declarations":[{"constant":false,"id":12495,"mutability":"mutable","name":"defaultTarget","nameLocation":"32295:13:44","nodeType":"VariableDeclaration","scope":12535,"src":"32270:38:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12494,"nodeType":"UserDefinedTypeName","pathNode":{"id":12493,"name":"AllocationTarget","nameLocations":["32270:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"32270:16:44"},"referencedDeclaration":1599,"src":"32270:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12500,"initialValue":{"baseExpression":{"expression":{"id":12496,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"32311:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32313:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"32311:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12499,"indexExpression":{"id":12498,"name":"defaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12487,"src":"32331:14:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32311:35:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32270:76:44"},{"assignments":[12502],"declarations":[{"constant":false,"id":12502,"mutability":"mutable","name":"allocatedRate","nameLocation":"32368:13:44","nodeType":"VariableDeclaration","scope":12535,"src":"32360:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12501,"name":"uint256","nodeType":"ElementaryTypeName","src":"32360:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12511,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12503,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"32384:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32386:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"32384:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12505,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"32405:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32407:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"32405:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32384:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":12508,"name":"defaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"32430:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32444:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"32430:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32384:80:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32360:104:44"},{"assignments":[12513],"declarations":[{"constant":false,"id":12513,"mutability":"mutable","name":"allocatedTotal","nameLocation":"32487:14:44","nodeType":"VariableDeclaration","scope":12535,"src":"32479:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12512,"name":"uint256","nodeType":"ElementaryTypeName","src":"32479:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12517,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12514,"name":"allocatedRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12502,"src":"32504:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12515,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"32520:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32504:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32479:47:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12518,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"32545:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12519,"name":"allocatedTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12513,"src":"32557:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32545:26:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"arguments":[{"id":12528,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"32696:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12529,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"32704:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12530,"name":"allocatedTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12513,"src":"32715:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12531,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"32731:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12527,"name":"_distributePendingWithFullRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12735,"src":"32665:30:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32665:80:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12533,"nodeType":"ExpressionStatement","src":"32665:80:44"},"id":12534,"nodeType":"IfStatement","src":"32541:204:44","trueBody":{"expression":{"arguments":[{"id":12522,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"32606:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12523,"name":"allocatedRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12502,"src":"32617:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12524,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"32632:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12521,"name":"_distributePendingProportionally","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12827,"src":"32573:32:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":12525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32573:73:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12526,"nodeType":"ExpressionStatement","src":"32573:73:44"}}]}},{"expression":{"id":12541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12537,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"32766:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"32768:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"32766:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12540,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"32792:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32766:39:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12542,"nodeType":"ExpressionStatement","src":"32766:39:44"},{"expression":{"arguments":[{"id":12544,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"32843:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12545,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12448,"src":"32858:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12546,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12461,"src":"32866:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12547,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12468,"src":"32882:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12543,"name":"_reconcileSelfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12613,"src":"32815:27:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32815:85:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12549,"nodeType":"ExpressionStatement","src":"32815:85:44"},{"expression":{"id":12550,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12414,"src":"32917:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12418,"id":12551,"nodeType":"Return","src":"32910:20:44"}]},"documentation":{"id":12412,"nodeType":"StructuredDocumentation","src":"29765:898:44","text":" @notice Internal implementation for distributing pending accumulated allocator-minting issuance\n @param toBlockNumber Block number to distribute up to\n @dev Distributes allocator-minting issuance for undistributed period using current rates,\n retroactively applied from lastDistributionBlock to toBlockNumber (inclusive).\n Called when 0 < selfMintingOffset, which occurs after pause periods or delayed distribution.\n @dev Available budget = max(0, issuancePerBlock * blocks - selfMintingOffset).\n Distribution cases:\n (1) available < allocatedTotal: proportional distribution to non-default, default gets zero\n (2) allocatedTotal <= available: full rates to non-default, remainder to default\n Where allocatedTotal is sum of non-default allocator rates * blocks.\n @return Block number that issuance was distributed up to"},"id":12553,"implemented":true,"kind":"function","modifiers":[],"name":"_distributePendingIssuance","nameLocation":"30677:26:44","nodeType":"FunctionDefinition","parameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12414,"mutability":"mutable","name":"toBlockNumber","nameLocation":"30712:13:44","nodeType":"VariableDeclaration","scope":12553,"src":"30704:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12413,"name":"uint256","nodeType":"ElementaryTypeName","src":"30704:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30703:23:44"},"returnParameters":{"id":12418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12553,"src":"30744:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12416,"name":"uint256","nodeType":"ElementaryTypeName","src":"30744:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30743:9:44"},"scope":13968,"src":"30668:2269:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12612,"nodeType":"Block","src":"33719:666:44","statements":[{"assignments":[12567],"declarations":[{"constant":false,"id":12567,"mutability":"mutable","name":"$","nameLocation":"33759:1:44","nodeType":"VariableDeclaration","scope":12612,"src":"33729:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12566,"nodeType":"UserDefinedTypeName","pathNode":{"id":12565,"name":"IssuanceAllocatorData","nameLocations":["33729:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"33729:21:44"},"referencedDeclaration":11802,"src":"33729:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12570,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12568,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"33763:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33763:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"33729:64:44"},{"assignments":[12572],"declarations":[{"constant":false,"id":12572,"mutability":"mutable","name":"newOffset","nameLocation":"33812:9:44","nodeType":"VariableDeclaration","scope":12612,"src":"33804:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12571,"name":"uint256","nodeType":"ElementaryTypeName","src":"33804:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12588,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12573,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12556,"src":"33824:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":12574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"33841:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33847:6:44","memberName":"number","nodeType":"MemberAccess","src":"33841:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33824:29:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12578,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12560,"src":"33885:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12579,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"33902:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33885:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":12584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33959:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":12585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33885:75:44","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12581,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"33922:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12582,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12560,"src":"33942:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33922:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12586,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33884:77:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33824:137:44","trueExpression":{"hexValue":"30","id":12577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33868:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33804:157:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12589,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"34065:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12590,"name":"newOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"34086:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34065:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12605,"nodeType":"IfStatement","src":"34061:276:44","trueBody":{"id":12604,"nodeType":"Block","src":"34097:240:44","statements":[{"eventCall":{"arguments":[{"id":12593,"name":"selfMintingOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"34161:17:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12594,"name":"newOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"34196:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12595,"name":"totalForPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12560,"src":"34223:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12596,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12556,"src":"34255:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12597,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12558,"src":"34271:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34255:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34280:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"34255:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12601,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12556,"src":"34299:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12592,"name":"SelfMintingOffsetReconciled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11916,"src":"34116:27:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256,uint256)"}},"id":12602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34116:210:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12603,"nodeType":"EmitStatement","src":"34111:215:44"}]}},{"expression":{"id":12610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12606,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"34347:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"34349:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"34347:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12609,"name":"newOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12572,"src":"34369:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34347:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12611,"nodeType":"ExpressionStatement","src":"34347:31:44"}]},"documentation":{"id":12554,"nodeType":"StructuredDocumentation","src":"32943:598:44","text":" @notice Reconciles self-minting offset after distribution and emits event if changed\n @param toBlockNumber Block number distributed to\n @param blocks Number of blocks in the distribution period\n @param totalForPeriod Total issuance budget for the period\n @param selfMintingOffset Self-minting offset before reconciliation\n @dev Updates accumulated self-minting after distribution.\n Subtracts the period budget used (min of accumulated and totalForPeriod).\n When caught up to current block, clears all since nothing remains to distribute."},"id":12613,"implemented":true,"kind":"function","modifiers":[],"name":"_reconcileSelfMintingOffset","nameLocation":"33555:27:44","nodeType":"FunctionDefinition","parameters":{"id":12563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12556,"mutability":"mutable","name":"toBlockNumber","nameLocation":"33600:13:44","nodeType":"VariableDeclaration","scope":12613,"src":"33592:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12555,"name":"uint256","nodeType":"ElementaryTypeName","src":"33592:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12558,"mutability":"mutable","name":"blocks","nameLocation":"33631:6:44","nodeType":"VariableDeclaration","scope":12613,"src":"33623:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12557,"name":"uint256","nodeType":"ElementaryTypeName","src":"33623:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12560,"mutability":"mutable","name":"totalForPeriod","nameLocation":"33655:14:44","nodeType":"VariableDeclaration","scope":12613,"src":"33647:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12559,"name":"uint256","nodeType":"ElementaryTypeName","src":"33647:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12562,"mutability":"mutable","name":"selfMintingOffset","nameLocation":"33687:17:44","nodeType":"VariableDeclaration","scope":12613,"src":"33679:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12561,"name":"uint256","nodeType":"ElementaryTypeName","src":"33679:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33582:128:44"},"returnParameters":{"id":12564,"nodeType":"ParameterList","parameters":[],"src":"33719:0:44"},"scope":13968,"src":"33546:839:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12734,"nodeType":"Block","src":"35038:1161:44","statements":[{"assignments":[12627],"declarations":[{"constant":false,"id":12627,"mutability":"mutable","name":"$","nameLocation":"35078:1:44","nodeType":"VariableDeclaration","scope":12734,"src":"35048:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12626,"nodeType":"UserDefinedTypeName","pathNode":{"id":12625,"name":"IssuanceAllocatorData","nameLocations":["35048:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"35048:21:44"},"referencedDeclaration":11802,"src":"35048:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12630,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12628,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"35082:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35082:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"35048:64:44"},{"assignments":[12632],"declarations":[{"constant":false,"id":12632,"mutability":"mutable","name":"fromBlock","nameLocation":"35131:9:44","nodeType":"VariableDeclaration","scope":12734,"src":"35123:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12631,"name":"uint256","nodeType":"ElementaryTypeName","src":"35123:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12637,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12633,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"35143:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35145:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"35143:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35169:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"35143:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35123:47:44"},{"body":{"id":12692,"nodeType":"Block","src":"35289:420:44","statements":[{"assignments":[12651],"declarations":[{"constant":false,"id":12651,"mutability":"mutable","name":"target","nameLocation":"35311:6:44","nodeType":"VariableDeclaration","scope":12692,"src":"35303:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12650,"name":"address","nodeType":"ElementaryTypeName","src":"35303:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12656,"initialValue":{"baseExpression":{"expression":{"id":12652,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"35320:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35322:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"35320:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12655,"indexExpression":{"id":12654,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12639,"src":"35338:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35320:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"35303:37:44"},{"assignments":[12659],"declarations":[{"constant":false,"id":12659,"mutability":"mutable","name":"targetData","nameLocation":"35379:10:44","nodeType":"VariableDeclaration","scope":12692,"src":"35354:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12658,"nodeType":"UserDefinedTypeName","pathNode":{"id":12657,"name":"AllocationTarget","nameLocations":["35354:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"35354:16:44"},"referencedDeclaration":1599,"src":"35354:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12664,"initialValue":{"baseExpression":{"expression":{"id":12660,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"35392:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35394:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"35392:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12663,"indexExpression":{"id":12662,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"35412:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35392:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"35354:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35438:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12666,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12659,"src":"35442:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35453:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"35442:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35438:35:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12691,"nodeType":"IfStatement","src":"35434:265:44","trueBody":{"id":12690,"nodeType":"Block","src":"35475:224:44","statements":[{"assignments":[12670],"declarations":[{"constant":false,"id":12670,"mutability":"mutable","name":"amount","nameLocation":"35501:6:44","nodeType":"VariableDeclaration","scope":12690,"src":"35493:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12669,"name":"uint256","nodeType":"ElementaryTypeName","src":"35493:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12675,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12671,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12659,"src":"35510:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35521:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"35510:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12673,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12616,"src":"35544:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35510:40:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35493:57:44"},{"expression":{"arguments":[{"id":12679,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"35585:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12680,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"35593:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12676,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"35568:11:44","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":12678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35580:4:44","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14179,"src":"35568:16:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":12681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35568:32:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12682,"nodeType":"ExpressionStatement","src":"35568:32:44"},{"eventCall":{"arguments":[{"id":12684,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12651,"src":"35643:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12685,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"35651:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12686,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"35659:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12687,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12622,"src":"35670:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12683,"name":"IssuanceDistributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"35623:19:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":12688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35623:61:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12689,"nodeType":"EmitStatement","src":"35618:66:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12639,"src":"35254:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":12643,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"35258:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35260:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"35258:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35276:6:44","memberName":"length","nodeType":"MemberAccess","src":"35258:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35254:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12693,"initializationExpression":{"assignments":[12639],"declarations":[{"constant":false,"id":12639,"mutability":"mutable","name":"i","nameLocation":"35247:1:44","nodeType":"VariableDeclaration","scope":12693,"src":"35239:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12638,"name":"uint256","nodeType":"ElementaryTypeName","src":"35239:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12641,"initialValue":{"hexValue":"31","id":12640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35251:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"35239:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"35284:3:44","subExpression":{"id":12647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12639,"src":"35286:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12649,"nodeType":"ExpressionStatement","src":"35284:3:44"},"nodeType":"ForStatement","src":"35234:475:44"},{"assignments":[12695],"declarations":[{"constant":false,"id":12695,"mutability":"mutable","name":"remainingForDefault","nameLocation":"35798:19:44","nodeType":"VariableDeclaration","scope":12734,"src":"35790:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12694,"name":"uint256","nodeType":"ElementaryTypeName","src":"35790:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12699,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12696,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12618,"src":"35820:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12697,"name":"allocatedTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12620,"src":"35832:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35820:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35790:56:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35860:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12701,"name":"remainingForDefault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12695,"src":"35864:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35860:23:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12733,"nodeType":"IfStatement","src":"35856:337:44","trueBody":{"id":12732,"nodeType":"Block","src":"35885:308:44","statements":[{"assignments":[12704],"declarations":[{"constant":false,"id":12704,"mutability":"mutable","name":"defaultAddress","nameLocation":"35907:14:44","nodeType":"VariableDeclaration","scope":12732,"src":"35899:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12703,"name":"address","nodeType":"ElementaryTypeName","src":"35899:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12709,"initialValue":{"baseExpression":{"expression":{"id":12705,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"35924:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35926:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"35924:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12708,"indexExpression":{"hexValue":"30","id":12707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35942:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35924:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"35899:45:44"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12710,"name":"defaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"35962:14:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35988:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35980:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12711,"name":"address","nodeType":"ElementaryTypeName","src":"35980:7:44","typeDescriptions":{}}},"id":12714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35980:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"35962:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12731,"nodeType":"IfStatement","src":"35958:225:44","trueBody":{"id":12730,"nodeType":"Block","src":"35992:191:44","statements":[{"expression":{"arguments":[{"id":12719,"name":"defaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"36027:14:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12720,"name":"remainingForDefault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12695,"src":"36043:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12716,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"36010:11:44","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":12718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36022:4:44","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14179,"src":"36010:16:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":12721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36010:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12722,"nodeType":"ExpressionStatement","src":"36010:53:44"},{"eventCall":{"arguments":[{"id":12724,"name":"defaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"36106:14:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12725,"name":"remainingForDefault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12695,"src":"36122:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12726,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"36143:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12727,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12622,"src":"36154:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12723,"name":"IssuanceDistributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"36086:19:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":12728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36086:82:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12729,"nodeType":"EmitStatement","src":"36081:87:44"}]}}]}}]},"documentation":{"id":12614,"nodeType":"StructuredDocumentation","src":"34391:473:44","text":" @notice Distribute pending issuance with full rates to non-default targets\n @param blocks Number of blocks in the distribution period\n @param available Total available allocator-minting budget for the period\n @param allocatedTotal Total amount allocated to non-default targets at full rate\n @param toBlockNumber Block number distributing to\n @dev Sufficient budget: non-default targets get full rates, default gets remainder"},"id":12735,"implemented":true,"kind":"function","modifiers":[],"name":"_distributePendingWithFullRate","nameLocation":"34878:30:44","nodeType":"FunctionDefinition","parameters":{"id":12623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12616,"mutability":"mutable","name":"blocks","nameLocation":"34926:6:44","nodeType":"VariableDeclaration","scope":12735,"src":"34918:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12615,"name":"uint256","nodeType":"ElementaryTypeName","src":"34918:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12618,"mutability":"mutable","name":"available","nameLocation":"34950:9:44","nodeType":"VariableDeclaration","scope":12735,"src":"34942:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12617,"name":"uint256","nodeType":"ElementaryTypeName","src":"34942:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12620,"mutability":"mutable","name":"allocatedTotal","nameLocation":"34977:14:44","nodeType":"VariableDeclaration","scope":12735,"src":"34969:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12619,"name":"uint256","nodeType":"ElementaryTypeName","src":"34969:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12622,"mutability":"mutable","name":"toBlockNumber","nameLocation":"35009:13:44","nodeType":"VariableDeclaration","scope":12735,"src":"35001:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12621,"name":"uint256","nodeType":"ElementaryTypeName","src":"35001:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34908:120:44"},"returnParameters":{"id":12624,"nodeType":"ParameterList","parameters":[],"src":"35038:0:44"},"scope":13968,"src":"34869:1330:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12826,"nodeType":"Block","src":"36850:1605:44","statements":[{"assignments":[12747],"declarations":[{"constant":false,"id":12747,"mutability":"mutable","name":"$","nameLocation":"36890:1:44","nodeType":"VariableDeclaration","scope":12826,"src":"36860:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12746,"nodeType":"UserDefinedTypeName","pathNode":{"id":12745,"name":"IssuanceAllocatorData","nameLocations":["36860:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"36860:21:44"},"referencedDeclaration":11802,"src":"36860:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12748,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"36894:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36894:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36860:64:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12751,"name":"allocatedRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12740,"src":"37148:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37165:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37148:18:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12754,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"37170:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37183:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37170:14:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37148:36:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12759,"nodeType":"IfStatement","src":"37144:49:44","trueBody":{"functionReturnParameters":12744,"id":12758,"nodeType":"Return","src":"37186:7:44"}},{"assignments":[12761],"declarations":[{"constant":false,"id":12761,"mutability":"mutable","name":"fromBlock","nameLocation":"37211:9:44","nodeType":"VariableDeclaration","scope":12826,"src":"37203:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12760,"name":"uint256","nodeType":"ElementaryTypeName","src":"37203:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12766,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"37223:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37225:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"37223:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":12764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37249:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37223:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"37203:47:44"},{"body":{"id":12824,"nodeType":"Block","src":"37436:1013:44","statements":[{"assignments":[12780],"declarations":[{"constant":false,"id":12780,"mutability":"mutable","name":"target","nameLocation":"37458:6:44","nodeType":"VariableDeclaration","scope":12824,"src":"37450:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12779,"name":"address","nodeType":"ElementaryTypeName","src":"37450:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":12785,"initialValue":{"baseExpression":{"expression":{"id":12781,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"37467:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37469:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"37467:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12784,"indexExpression":{"id":12783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"37485:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37467:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"37450:37:44"},{"assignments":[12788],"declarations":[{"constant":false,"id":12788,"mutability":"mutable","name":"targetData","nameLocation":"37526:10:44","nodeType":"VariableDeclaration","scope":12824,"src":"37501:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12787,"nodeType":"UserDefinedTypeName","pathNode":{"id":12786,"name":"AllocationTarget","nameLocations":["37501:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"37501:16:44"},"referencedDeclaration":1599,"src":"37501:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12793,"initialValue":{"baseExpression":{"expression":{"id":12789,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"37539:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37541:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"37539:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12792,"indexExpression":{"id":12791,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12780,"src":"37559:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37539:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"37501:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":12794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37585:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12795,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12788,"src":"37589:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37600:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"37589:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37585:35:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12823,"nodeType":"IfStatement","src":"37581:858:44","trueBody":{"id":12822,"nodeType":"Block","src":"37622:817:44","statements":[{"assignments":[12799],"declarations":[{"constant":false,"id":12799,"mutability":"mutable","name":"amount","nameLocation":"38220:6:44","nodeType":"VariableDeclaration","scope":12822,"src":"38212:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12798,"name":"uint256","nodeType":"ElementaryTypeName","src":"38212:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12807,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12800,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12738,"src":"38230:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":12801,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12788,"src":"38242:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38253:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"38242:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38230:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12804,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:45:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12805,"name":"allocatedRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12740,"src":"38277:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38229:61:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"38212:78:44"},{"expression":{"arguments":[{"id":12811,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12780,"src":"38325:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12799,"src":"38333:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12808,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"38308:11:44","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38320:4:44","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14179,"src":"38308:16:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":12813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38308:32:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12814,"nodeType":"ExpressionStatement","src":"38308:32:44"},{"eventCall":{"arguments":[{"id":12816,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12780,"src":"38383:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12817,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12799,"src":"38391:6:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12818,"name":"fromBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12761,"src":"38399:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12819,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"38410:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12815,"name":"IssuanceDistributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11869,"src":"38363:19:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":12820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38363:61:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12821,"nodeType":"EmitStatement","src":"38358:66:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"37401:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":12772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12747,"src":"37405:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37407:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"37405:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37423:6:44","memberName":"length","nodeType":"MemberAccess","src":"37405:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37401:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12825,"initializationExpression":{"assignments":[12768],"declarations":[{"constant":false,"id":12768,"mutability":"mutable","name":"i","nameLocation":"37394:1:44","nodeType":"VariableDeclaration","scope":12825,"src":"37386:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12767,"name":"uint256","nodeType":"ElementaryTypeName","src":"37386:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12770,"initialValue":{"hexValue":"31","id":12769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37398:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"37386:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"37431:3:44","subExpression":{"id":12776,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12768,"src":"37433:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12778,"nodeType":"ExpressionStatement","src":"37431:3:44"},"nodeType":"ForStatement","src":"37381:1068:44"}]},"documentation":{"id":12736,"nodeType":"StructuredDocumentation","src":"36205:494:44","text":" @notice Distribute pending issuance proportionally among non-default targets\n @param available Total available allocator-minting budget for the period\n @param allocatedRate Total rate allocated to non-default targets\n @param toBlockNumber Block number distributing to\n @dev Insufficient budget: non-default targets get proportional shares, default gets zero\n @dev Proportional distribution may result in rounding loss (dust), which is acceptable"},"id":12827,"implemented":true,"kind":"function","modifiers":[],"name":"_distributePendingProportionally","nameLocation":"36713:32:44","nodeType":"FunctionDefinition","parameters":{"id":12743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12738,"mutability":"mutable","name":"available","nameLocation":"36763:9:44","nodeType":"VariableDeclaration","scope":12827,"src":"36755:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12737,"name":"uint256","nodeType":"ElementaryTypeName","src":"36755:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12740,"mutability":"mutable","name":"allocatedRate","nameLocation":"36790:13:44","nodeType":"VariableDeclaration","scope":12827,"src":"36782:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12739,"name":"uint256","nodeType":"ElementaryTypeName","src":"36782:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12742,"mutability":"mutable","name":"toBlockNumber","nameLocation":"36821:13:44","nodeType":"VariableDeclaration","scope":12827,"src":"36813:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12741,"name":"uint256","nodeType":"ElementaryTypeName","src":"36813:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36745:95:44"},"returnParameters":{"id":12744,"nodeType":"ParameterList","parameters":[],"src":"36850:0:44"},"scope":13968,"src":"36704:1751:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1353],"body":{"id":12847,"nodeType":"Block","src":"38672:79:44","statements":[{"expression":{"arguments":[{"id":12842,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12830,"src":"38710:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12843,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38731:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38737:6:44","memberName":"number","nodeType":"MemberAccess","src":"38731:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12841,"name":"_setIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12964,"src":"38689:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) returns (bool)"}},"id":12845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38689:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12840,"id":12846,"nodeType":"Return","src":"38682:62:44"}]},"documentation":{"id":12828,"nodeType":"StructuredDocumentation","src":"38461:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"1156bdc1","id":12848,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12834,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"38629:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12835,"kind":"modifierInvocation","modifierName":{"id":12833,"name":"onlyRole","nameLocations":["38620:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"38620:8:44"},"nodeType":"ModifierInvocation","src":"38620:23:44"},{"id":12837,"kind":"modifierInvocation","modifierName":{"id":12836,"name":"nonReentrant","nameLocations":["38644:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"38644:12:44"},"nodeType":"ModifierInvocation","src":"38644:12:44"}],"name":"setIssuancePerBlock","nameLocation":"38539:19:44","nodeType":"FunctionDefinition","overrides":{"id":12832,"nodeType":"OverrideSpecifier","overrides":[],"src":"38611:8:44"},"parameters":{"id":12831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12830,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"38576:19:44","nodeType":"VariableDeclaration","scope":12848,"src":"38568:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12829,"name":"uint256","nodeType":"ElementaryTypeName","src":"38568:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38558:43:44"},"returnParameters":{"id":12840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12848,"src":"38666:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12838,"name":"bool","nodeType":"ElementaryTypeName","src":"38666:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38665:6:44"},"scope":13968,"src":"38530:221:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1363],"body":{"id":12869,"nodeType":"Block","src":"39927:86:44","statements":[{"expression":{"arguments":[{"id":12865,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12851,"src":"39965:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12866,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12853,"src":"39986:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12864,"name":"_setIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12964,"src":"39944:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) returns (bool)"}},"id":12867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39944:62:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12863,"id":12868,"nodeType":"Return","src":"39937:69:44"}]},"documentation":{"id":12849,"nodeType":"StructuredDocumentation","src":"38757:986:44","text":" @inheritdoc IIssuanceAllocationAdministration\n @dev Implementation details:\n - Requires distribution to have reached at least minDistributedBlock\n - This allows configuration changes after calling distributePendingIssuance(blockNumber) while paused\n - Only the default target is notified (target rates don't change, only default target changes)\n - Target rates stay fixed; default target absorbs the change\n - Whenever the rate is changed, the updateL2MintAllowance function _must_ be called on the L1GraphTokenGateway in L1, to ensure the bridge can mint the right amount of tokens\n @dev Rate changes while paused: The new rate applies retroactively to the entire undistributed\n period when distribution resumes. Governance must exercise caution to ensure rates are applied\n to the correct block range. Use distributePendingIssuance(blockNumber) to control precisely\n which block the new rate applies from."},"functionSelector":"c627b7a4","id":12870,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12857,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"39884:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12858,"kind":"modifierInvocation","modifierName":{"id":12856,"name":"onlyRole","nameLocations":["39875:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"39875:8:44"},"nodeType":"ModifierInvocation","src":"39875:23:44"},{"id":12860,"kind":"modifierInvocation","modifierName":{"id":12859,"name":"nonReentrant","nameLocations":["39899:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"39899:12:44"},"nodeType":"ModifierInvocation","src":"39899:12:44"}],"name":"setIssuancePerBlock","nameLocation":"39757:19:44","nodeType":"FunctionDefinition","overrides":{"id":12855,"nodeType":"OverrideSpecifier","overrides":[],"src":"39866:8:44"},"parameters":{"id":12854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12851,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"39794:19:44","nodeType":"VariableDeclaration","scope":12870,"src":"39786:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12850,"name":"uint256","nodeType":"ElementaryTypeName","src":"39786:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12853,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"39831:19:44","nodeType":"VariableDeclaration","scope":12870,"src":"39823:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12852,"name":"uint256","nodeType":"ElementaryTypeName","src":"39823:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39776:80:44"},"returnParameters":{"id":12863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12870,"src":"39921:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12861,"name":"bool","nodeType":"ElementaryTypeName","src":"39921:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39920:6:44"},"scope":13968,"src":"39748:265:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12963,"nodeType":"Block","src":"40408:994:44","statements":[{"assignments":[12882],"declarations":[{"constant":false,"id":12882,"mutability":"mutable","name":"$","nameLocation":"40448:1:44","nodeType":"VariableDeclaration","scope":12963,"src":"40418:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12881,"nodeType":"UserDefinedTypeName","pathNode":{"id":12880,"name":"IssuanceAllocatorData","nameLocations":["40418:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"40418:21:44"},"referencedDeclaration":11802,"src":"40418:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12883,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"40452:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40452:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"40418:64:44"},{"assignments":[12887],"declarations":[{"constant":false,"id":12887,"mutability":"mutable","name":"oldIssuancePerBlock","nameLocation":"40500:19:44","nodeType":"VariableDeclaration","scope":12963,"src":"40492:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12886,"name":"uint256","nodeType":"ElementaryTypeName","src":"40492:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12890,"initialValue":{"expression":{"id":12888,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12882,"src":"40522:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40524:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"40522:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40492:48:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12891,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"40554:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12892,"name":"oldIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12887,"src":"40577:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40554:42:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12896,"nodeType":"IfStatement","src":"40550:59:44","trueBody":{"expression":{"hexValue":"74727565","id":12894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40605:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12879,"id":12895,"nodeType":"Return","src":"40598:11:44"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":12897,"name":"_distributeIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"40624:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":12898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40624:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":12899,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12875,"src":"40648:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40624:43:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12903,"nodeType":"IfStatement","src":"40620:61:44","trueBody":{"expression":{"hexValue":"66616c7365","id":12901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40676:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12879,"id":12902,"nodeType":"Return","src":"40669:12:44"}},{"expression":{"arguments":[{"baseExpression":{"expression":{"id":12905,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12882,"src":"40706:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40708:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"40706:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12908,"indexExpression":{"hexValue":"30","id":12907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40724:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40706:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12904,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"40692:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":12909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40692:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12910,"nodeType":"ExpressionStatement","src":"40692:35:44"},{"assignments":[12913],"declarations":[{"constant":false,"id":12913,"mutability":"mutable","name":"defaultTarget","nameLocation":"40763:13:44","nodeType":"VariableDeclaration","scope":12963,"src":"40738:38:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":12912,"nodeType":"UserDefinedTypeName","pathNode":{"id":12911,"name":"AllocationTarget","nameLocations":["40738:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"40738:16:44"},"referencedDeclaration":1599,"src":"40738:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":12921,"initialValue":{"baseExpression":{"expression":{"id":12914,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12882,"src":"40779:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40781:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"40779:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":12920,"indexExpression":{"baseExpression":{"expression":{"id":12916,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12882,"src":"40799:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40801:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"40799:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":12919,"indexExpression":{"hexValue":"30","id":12918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40817:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40799:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40779:41:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"40738:82:44"},{"assignments":[12923],"declarations":[{"constant":false,"id":12923,"mutability":"mutable","name":"unallocated","nameLocation":"40838:11:44","nodeType":"VariableDeclaration","scope":12963,"src":"40830:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12922,"name":"uint256","nodeType":"ElementaryTypeName","src":"40830:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12926,"initialValue":{"expression":{"id":12924,"name":"defaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"40852:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40866:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"40852:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40830:56:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12928,"name":"oldIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12887,"src":"40918:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12929,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"40941:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12930,"name":"unallocated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"40963:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40941:33:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40918:56:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":12934,"name":"oldIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12887,"src":"41075:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12935,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"41096:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12936,"name":"unallocated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"41117:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12933,"name":"InsufficientUnallocatedForRateDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11834,"src":"41036:38:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256,uint256) pure returns (error)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41036:93:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":12927,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40897:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":12938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40897:242:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12939,"nodeType":"ExpressionStatement","src":"40897:242:44"},{"expression":{"id":12948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12940,"name":"defaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"41150:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":12942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41164:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"41150:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12943,"name":"unallocated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"41187:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":12944,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"41201:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41187:33:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":12946,"name":"oldIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12887,"src":"41223:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41187:55:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41150:92:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12949,"nodeType":"ExpressionStatement","src":"41150:92:44"},{"expression":{"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12950,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12882,"src":"41252:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41254:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"41252:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12953,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"41273:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41252:40:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12955,"nodeType":"ExpressionStatement","src":"41252:40:44"},{"eventCall":{"arguments":[{"id":12957,"name":"oldIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12887,"src":"41332:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12958,"name":"newIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12873,"src":"41353:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12956,"name":"IssuancePerBlockUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11885,"src":"41308:23:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":12959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41308:65:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12960,"nodeType":"EmitStatement","src":"41303:70:44"},{"expression":{"hexValue":"74727565","id":12961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41391:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12879,"id":12962,"nodeType":"Return","src":"41384:11:44"}]},"documentation":{"id":12871,"nodeType":"StructuredDocumentation","src":"40019:273:44","text":" @notice Internal implementation for setting issuance per block\n @param newIssuancePerBlock New issuance per block\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return True if the value is applied"},"id":12964,"implemented":true,"kind":"function","modifiers":[],"name":"_setIssuancePerBlock","nameLocation":"40306:20:44","nodeType":"FunctionDefinition","parameters":{"id":12876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12873,"mutability":"mutable","name":"newIssuancePerBlock","nameLocation":"40335:19:44","nodeType":"VariableDeclaration","scope":12964,"src":"40327:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12872,"name":"uint256","nodeType":"ElementaryTypeName","src":"40327:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12875,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"40364:19:44","nodeType":"VariableDeclaration","scope":12964,"src":"40356:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12874,"name":"uint256","nodeType":"ElementaryTypeName","src":"40356:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40326:58:44"},"returnParameters":{"id":12879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12964,"src":"40402:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12877,"name":"bool","nodeType":"ElementaryTypeName","src":"40402:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40401:6:44"},"scope":13968,"src":"40297:1105:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[1461],"body":{"id":13007,"nodeType":"Block","src":"41588:315:44","statements":[{"assignments":[12978],"declarations":[{"constant":false,"id":12978,"mutability":"mutable","name":"$","nameLocation":"41628:1:44","nodeType":"VariableDeclaration","scope":13007,"src":"41598:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":12977,"nodeType":"UserDefinedTypeName","pathNode":{"id":12976,"name":"IssuanceAllocatorData","nameLocations":["41598:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"41598:21:44"},"referencedDeclaration":11802,"src":"41598:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":12981,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12979,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"41632:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":12980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41632:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"41598:64:44"},{"assignments":[12984],"declarations":[{"constant":false,"id":12984,"mutability":"mutable","name":"oldMode","nameLocation":"41693:7:44","nodeType":"VariableDeclaration","scope":13007,"src":"41672:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":12983,"nodeType":"UserDefinedTypeName","pathNode":{"id":12982,"name":"SelfMintingEventMode","nameLocations":["41672:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"41672:20:44"},"referencedDeclaration":1573,"src":"41672:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"id":12987,"initialValue":{"expression":{"id":12985,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12978,"src":"41703:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41705:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"41703:22:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"VariableDeclarationStatement","src":"41672:53:44"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"id":12990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12988,"name":"newMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12968,"src":"41740:7:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12989,"name":"oldMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"41751:7:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"src":"41740:18:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12993,"nodeType":"IfStatement","src":"41736:35:44","trueBody":{"expression":{"hexValue":"74727565","id":12991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41767:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12975,"id":12992,"nodeType":"Return","src":"41760:11:44"}},{"expression":{"id":12998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12994,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12978,"src":"41782:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":12996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41784:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"41782:22:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12997,"name":"newMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12968,"src":"41807:7:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"src":"41782:32:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"id":12999,"nodeType":"ExpressionStatement","src":"41782:32:44"},{"eventCall":{"arguments":[{"id":13001,"name":"oldMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"41857:7:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},{"id":13002,"name":"newMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12968,"src":"41866:7:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}],"id":13000,"name":"SelfMintingEventModeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"41829:27:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_SelfMintingEventMode_$1573_$_t_enum$_SelfMintingEventMode_$1573_$returns$__$","typeString":"function (enum SelfMintingEventMode,enum SelfMintingEventMode)"}},"id":13003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41829:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13004,"nodeType":"EmitStatement","src":"41824:50:44"},{"expression":{"hexValue":"74727565","id":13005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41892:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12975,"id":13006,"nodeType":"Return","src":"41885:11:44"}]},"documentation":{"id":12965,"nodeType":"StructuredDocumentation","src":"41408:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"13a7855d","id":13008,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12971,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"41558:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12972,"kind":"modifierInvocation","modifierName":{"id":12970,"name":"onlyRole","nameLocations":["41549:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"41549:8:44"},"nodeType":"ModifierInvocation","src":"41549:23:44"}],"name":"setSelfMintingEventMode","nameLocation":"41486:23:44","nodeType":"FunctionDefinition","parameters":{"id":12969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12968,"mutability":"mutable","name":"newMode","nameLocation":"41531:7:44","nodeType":"VariableDeclaration","scope":13008,"src":"41510:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":12967,"nodeType":"UserDefinedTypeName","pathNode":{"id":12966,"name":"SelfMintingEventMode","nameLocations":["41510:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"41510:20:44"},"referencedDeclaration":1573,"src":"41510:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"src":"41509:30:44"},"returnParameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13008,"src":"41582:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12973,"name":"bool","nodeType":"ElementaryTypeName","src":"41582:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41581:6:44"},"scope":13968,"src":"41477:426:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1468],"body":{"id":13020,"nodeType":"Block","src":"42067:75:44","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13016,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"42084:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42084:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42115:20:44","memberName":"selfMintingEventMode","nodeType":"MemberAccess","referencedDeclaration":11801,"src":"42084:51:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"functionReturnParameters":13015,"id":13019,"nodeType":"Return","src":"42077:58:44"}]},"documentation":{"id":13009,"nodeType":"StructuredDocumentation","src":"41909:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"93c911a8","id":13021,"implemented":true,"kind":"function","modifiers":[],"name":"getSelfMintingEventMode","nameLocation":"41987:23:44","nodeType":"FunctionDefinition","overrides":{"id":13011,"nodeType":"OverrideSpecifier","overrides":[],"src":"42027:8:44"},"parameters":{"id":13010,"nodeType":"ParameterList","parameters":[],"src":"42010:2:44"},"returnParameters":{"id":13015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13021,"src":"42045:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"},"typeName":{"id":13013,"nodeType":"UserDefinedTypeName","pathNode":{"id":13012,"name":"SelfMintingEventMode","nameLocations":["42045:20:44"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"42045:20:44"},"referencedDeclaration":1573,"src":"42045:20:44","typeDescriptions":{"typeIdentifier":"t_enum$_SelfMintingEventMode_$1573","typeString":"enum SelfMintingEventMode"}},"visibility":"internal"}],"src":"42044:22:44"},"scope":13968,"src":"41978:164:44","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13075,"nodeType":"Block","src":"42822:847:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13029,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"42910:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":13032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42928:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42920:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13030,"name":"address","nodeType":"ElementaryTypeName","src":"42920:7:44","typeDescriptions":{}}},"id":13033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42920:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42910:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13037,"nodeType":"IfStatement","src":"42906:37:44","trueBody":{"expression":{"hexValue":"74727565","id":13035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42939:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13028,"id":13036,"nodeType":"Return","src":"42932:11:44"}},{"assignments":[13040],"declarations":[{"constant":false,"id":13040,"mutability":"mutable","name":"$","nameLocation":"42984:1:44","nodeType":"VariableDeclaration","scope":13075,"src":"42954:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13039,"nodeType":"UserDefinedTypeName","pathNode":{"id":13038,"name":"IssuanceAllocatorData","nameLocations":["42954:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"42954:21:44"},"referencedDeclaration":11802,"src":"42954:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13043,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13041,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"42988:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42988:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"42954:64:44"},{"assignments":[13046],"declarations":[{"constant":false,"id":13046,"mutability":"mutable","name":"targetData","nameLocation":"43053:10:44","nodeType":"VariableDeclaration","scope":13075,"src":"43028:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13045,"nodeType":"UserDefinedTypeName","pathNode":{"id":13044,"name":"AllocationTarget","nameLocations":["43028:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"43028:16:44"},"referencedDeclaration":1599,"src":"43028:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13051,"initialValue":{"baseExpression":{"expression":{"id":13047,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13040,"src":"43066:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43068:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"43066:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13050,"indexExpression":{"id":13049,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"43086:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43066:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"43028:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13052,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"43253:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43259:6:44","memberName":"number","nodeType":"MemberAccess","src":"43253:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":13054,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13046,"src":"43269:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43280:23:44","memberName":"lastChangeNotifiedBlock","nodeType":"MemberAccess","referencedDeclaration":1598,"src":"43269:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43253:50:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13059,"nodeType":"IfStatement","src":"43249:67:44","trueBody":{"expression":{"hexValue":"74727565","id":13057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"43312:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13028,"id":13058,"nodeType":"Return","src":"43305:11:44"}},{"expression":{"id":13065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13060,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13046,"src":"43398:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"43409:23:44","memberName":"lastChangeNotifiedBlock","nodeType":"MemberAccess","referencedDeclaration":1598,"src":"43398:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13063,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"43435:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43441:6:44","memberName":"number","nodeType":"MemberAccess","src":"43435:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43398:49:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13066,"nodeType":"ExpressionStatement","src":"43398:49:44"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":13068,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"43601:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13067,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"43585:15:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43585:23:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"id":13070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43609:30:44","memberName":"beforeIssuanceAllocationChange","nodeType":"MemberAccess","referencedDeclaration":1624,"src":"43585:54:44","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":13071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43585:56:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13072,"nodeType":"ExpressionStatement","src":"43585:56:44"},{"expression":{"hexValue":"74727565","id":13073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"43658:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13028,"id":13074,"nodeType":"Return","src":"43651:11:44"}]},"documentation":{"id":13022,"nodeType":"StructuredDocumentation","src":"42180:575:44","text":" @notice Internal function to notify a target about an upcoming allocation change\n @dev Uses per-target lastChangeNotifiedBlock to prevent reentrancy and duplicate notifications.\n Will revert if the target's beforeIssuanceAllocationChange call fails.\n Use forceTargetNoChangeNotificationBlock to skip notification for malfunctioning targets.\n @param target Address of the target to notify\n @return True if notification was sent or already sent for this block. Always returns true for address(0) without notifying."},"id":13076,"implemented":true,"kind":"function","modifiers":[],"name":"_notifyTarget","nameLocation":"42769:13:44","nodeType":"FunctionDefinition","parameters":{"id":13025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13024,"mutability":"mutable","name":"target","nameLocation":"42791:6:44","nodeType":"VariableDeclaration","scope":13076,"src":"42783:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13023,"name":"address","nodeType":"ElementaryTypeName","src":"42783:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42782:16:44"},"returnParameters":{"id":13028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13076,"src":"42816:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13026,"name":"bool","nodeType":"ElementaryTypeName","src":"42816:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42815:6:44"},"scope":13968,"src":"42760:909:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[1410],"body":{"id":13094,"nodeType":"Block","src":"44030:45:44","statements":[{"expression":{"arguments":[{"id":13091,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13079,"src":"44061:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13090,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"44047:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":13092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44047:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13089,"id":13093,"nodeType":"Return","src":"44040:28:44"}]},"documentation":{"id":13077,"nodeType":"StructuredDocumentation","src":"43675:242:44","text":" @inheritdoc IIssuanceAllocationAdministration\n @dev Implementation details:\n - The target will be notified at most once per block to prevent reentrancy looping\n - Will revert if target notification reverts"},"functionSelector":"4887693c","id":13095,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13083,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"43987:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13084,"kind":"modifierInvocation","modifierName":{"id":13082,"name":"onlyRole","nameLocations":["43978:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"43978:8:44"},"nodeType":"ModifierInvocation","src":"43978:23:44"},{"id":13086,"kind":"modifierInvocation","modifierName":{"id":13085,"name":"nonReentrant","nameLocations":["44002:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"44002:12:44"},"nodeType":"ModifierInvocation","src":"44002:12:44"}],"name":"notifyTarget","nameLocation":"43931:12:44","nodeType":"FunctionDefinition","overrides":{"id":13081,"nodeType":"OverrideSpecifier","overrides":[],"src":"43969:8:44"},"parameters":{"id":13080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13079,"mutability":"mutable","name":"target","nameLocation":"43952:6:44","nodeType":"VariableDeclaration","scope":13095,"src":"43944:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13078,"name":"address","nodeType":"ElementaryTypeName","src":"43944:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43943:16:44"},"returnParameters":{"id":13089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13095,"src":"44024:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13087,"name":"bool","nodeType":"ElementaryTypeName","src":"44024:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44023:6:44"},"scope":13968,"src":"43922:153:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1420],"body":{"id":13131,"nodeType":"Block","src":"44636:522:44","statements":[{"assignments":[13111],"declarations":[{"constant":false,"id":13111,"mutability":"mutable","name":"$","nameLocation":"44676:1:44","nodeType":"VariableDeclaration","scope":13131,"src":"44646:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13110,"nodeType":"UserDefinedTypeName","pathNode":{"id":13109,"name":"IssuanceAllocatorData","nameLocations":["44646:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"44646:21:44"},"referencedDeclaration":11802,"src":"44646:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13114,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13112,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"44680:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44680:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44646:64:44"},{"assignments":[13117],"declarations":[{"constant":false,"id":13117,"mutability":"mutable","name":"targetData","nameLocation":"44745:10:44","nodeType":"VariableDeclaration","scope":13131,"src":"44720:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13116,"nodeType":"UserDefinedTypeName","pathNode":{"id":13115,"name":"AllocationTarget","nameLocations":["44720:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"44720:16:44"},"referencedDeclaration":1599,"src":"44720:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13122,"initialValue":{"baseExpression":{"expression":{"id":13118,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13111,"src":"44758:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44760:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"44758:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13121,"indexExpression":{"id":13120,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13098,"src":"44778:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44758:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"44720:65:44"},{"expression":{"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13123,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13117,"src":"45075:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"45086:23:44","memberName":"lastChangeNotifiedBlock","nodeType":"MemberAccess","referencedDeclaration":1598,"src":"45075:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13126,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13100,"src":"45112:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45075:48:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13128,"nodeType":"ExpressionStatement","src":"45075:48:44"},{"expression":{"id":13129,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13100,"src":"45140:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13108,"id":13130,"nodeType":"Return","src":"45133:18:44"}]},"documentation":{"id":13096,"nodeType":"StructuredDocumentation","src":"44081:385:44","text":" @inheritdoc IIssuanceAllocationAdministration\n @dev Implementation details:\n - This can be used to enable notification to be sent again (by setting to a past block) or to prevent notification until a future block (by setting to current or future block)\n - Returns the block number that was set, always equal to blockNumber in current implementation"},"functionSelector":"7c92330b","id":13132,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13104,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"44603:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13105,"kind":"modifierInvocation","modifierName":{"id":13103,"name":"onlyRole","nameLocations":["44594:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"44594:8:44"},"nodeType":"ModifierInvocation","src":"44594:23:44"}],"name":"forceTargetNoChangeNotificationBlock","nameLocation":"44480:36:44","nodeType":"FunctionDefinition","overrides":{"id":13102,"nodeType":"OverrideSpecifier","overrides":[],"src":"44585:8:44"},"parameters":{"id":13101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13098,"mutability":"mutable","name":"target","nameLocation":"44534:6:44","nodeType":"VariableDeclaration","scope":13132,"src":"44526:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13097,"name":"address","nodeType":"ElementaryTypeName","src":"44526:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13100,"mutability":"mutable","name":"blockNumber","nameLocation":"44558:11:44","nodeType":"VariableDeclaration","scope":13132,"src":"44550:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13099,"name":"uint256","nodeType":"ElementaryTypeName","src":"44550:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44516:59:44"},"returnParameters":{"id":13108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13132,"src":"44627:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13106,"name":"uint256","nodeType":"ElementaryTypeName","src":"44627:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44626:9:44"},"scope":13968,"src":"44471:687:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1374],"body":{"id":13160,"nodeType":"Block","src":"45408:100:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":13152,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13136,"src":"45454:6:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}],"id":13151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45446:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13150,"name":"address","nodeType":"ElementaryTypeName","src":"45446:7:44","typeDescriptions":{}}},"id":13153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45446:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13154,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13138,"src":"45463:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":13155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45485:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":13156,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45488:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45494:6:44","memberName":"number","nodeType":"MemberAccess","src":"45488:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13149,"name":"_setTargetAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"45425:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,uint256) returns (bool)"}},"id":13158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45425:76:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13148,"id":13159,"nodeType":"Return","src":"45418:83:44"}]},"documentation":{"id":13133,"nodeType":"StructuredDocumentation","src":"45164:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"443990fa","id":13161,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13142,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"45365:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13143,"kind":"modifierInvocation","modifierName":{"id":13141,"name":"onlyRole","nameLocations":["45356:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"45356:8:44"},"nodeType":"ModifierInvocation","src":"45356:23:44"},{"id":13145,"kind":"modifierInvocation","modifierName":{"id":13144,"name":"nonReentrant","nameLocations":["45380:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"45380:12:44"},"nodeType":"ModifierInvocation","src":"45380:12:44"}],"name":"setTargetAllocation","nameLocation":"45242:19:44","nodeType":"FunctionDefinition","overrides":{"id":13140,"nodeType":"OverrideSpecifier","overrides":[],"src":"45347:8:44"},"parameters":{"id":13139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13136,"mutability":"mutable","name":"target","nameLocation":"45287:6:44","nodeType":"VariableDeclaration","scope":13161,"src":"45271:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":13135,"nodeType":"UserDefinedTypeName","pathNode":{"id":13134,"name":"IIssuanceTarget","nameLocations":["45271:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"45271:15:44"},"referencedDeclaration":1631,"src":"45271:15:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":13138,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"45311:20:44","nodeType":"VariableDeclaration","scope":13161,"src":"45303:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13137,"name":"uint256","nodeType":"ElementaryTypeName","src":"45303:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45261:76:44"},"returnParameters":{"id":13148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13161,"src":"45402:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13146,"name":"bool","nodeType":"ElementaryTypeName","src":"45402:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45401:6:44"},"scope":13968,"src":"45233:275:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1387],"body":{"id":13191,"nodeType":"Block","src":"45791:114:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":13183,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13165,"src":"45837:6:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}],"id":13182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"45829:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13181,"name":"address","nodeType":"ElementaryTypeName","src":"45829:7:44","typeDescriptions":{}}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45829:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13185,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13167,"src":"45846:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13186,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13169,"src":"45868:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13187,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45885:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45891:6:44","memberName":"number","nodeType":"MemberAccess","src":"45885:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13180,"name":"_setTargetAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"45808:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,uint256) returns (bool)"}},"id":13189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45808:90:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13179,"id":13190,"nodeType":"Return","src":"45801:97:44"}]},"documentation":{"id":13162,"nodeType":"StructuredDocumentation","src":"45514:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"647b3682","id":13192,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13173,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"45748:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13174,"kind":"modifierInvocation","modifierName":{"id":13172,"name":"onlyRole","nameLocations":["45739:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"45739:8:44"},"nodeType":"ModifierInvocation","src":"45739:23:44"},{"id":13176,"kind":"modifierInvocation","modifierName":{"id":13175,"name":"nonReentrant","nameLocations":["45763:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"45763:12:44"},"nodeType":"ModifierInvocation","src":"45763:12:44"}],"name":"setTargetAllocation","nameLocation":"45592:19:44","nodeType":"FunctionDefinition","overrides":{"id":13171,"nodeType":"OverrideSpecifier","overrides":[],"src":"45730:8:44"},"parameters":{"id":13170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13165,"mutability":"mutable","name":"target","nameLocation":"45637:6:44","nodeType":"VariableDeclaration","scope":13192,"src":"45621:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":13164,"nodeType":"UserDefinedTypeName","pathNode":{"id":13163,"name":"IIssuanceTarget","nameLocations":["45621:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"45621:15:44"},"referencedDeclaration":1631,"src":"45621:15:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":13167,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"45661:20:44","nodeType":"VariableDeclaration","scope":13192,"src":"45653:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13166,"name":"uint256","nodeType":"ElementaryTypeName","src":"45653:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13169,"mutability":"mutable","name":"selfMintingRate","nameLocation":"45699:15:44","nodeType":"VariableDeclaration","scope":13192,"src":"45691:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13168,"name":"uint256","nodeType":"ElementaryTypeName","src":"45691:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45611:109:44"},"returnParameters":{"id":13179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13192,"src":"45785:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13177,"name":"bool","nodeType":"ElementaryTypeName","src":"45785:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45784:6:44"},"scope":13968,"src":"45583:322:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1402],"body":{"id":13223,"nodeType":"Block","src":"47258:121:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":13216,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13196,"src":"47304:6:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}],"id":13215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"47296:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13214,"name":"address","nodeType":"ElementaryTypeName","src":"47296:7:44","typeDescriptions":{}}},"id":13217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47296:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13218,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13198,"src":"47313:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13219,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13200,"src":"47335:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13220,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13202,"src":"47352:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13213,"name":"_setTargetAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13450,"src":"47275:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,uint256) returns (bool)"}},"id":13221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47275:97:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13212,"id":13222,"nodeType":"Return","src":"47268:104:44"}]},"documentation":{"id":13193,"nodeType":"StructuredDocumentation","src":"45911:1097:44","text":" @inheritdoc IIssuanceAllocationAdministration\n @dev Implementation details:\n - Requires distribution has reached at least minDistributedBlock issuance to change allocation\n - This allows configuration changes while paused by being deliberate about which block to distribute to\n - If the new allocations are the same as the current allocations, this function is a no-op\n - If both allocations are 0 and the target doesn't exist, this function is a no-op\n - If both allocations are 0 and the target exists, the target will be removed\n - If any allocation is non-zero and the target doesn't exist, the target will be added\n - Will revert if the total allocation would exceed available capacity (default target + current target allocation)\n - Will revert if attempting to add a target that doesn't support IIssuanceTarget\n @dev Self-minting targets must call getTargetIssuancePerBlock to determine their issuance and mint\n accordingly. See contract header for details on self-minting vs allocator-minting allocation."},"functionSelector":"c2cb3544","id":13224,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13206,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"47215:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13207,"kind":"modifierInvocation","modifierName":{"id":13205,"name":"onlyRole","nameLocations":["47206:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"47206:8:44"},"nodeType":"ModifierInvocation","src":"47206:23:44"},{"id":13209,"kind":"modifierInvocation","modifierName":{"id":13208,"name":"nonReentrant","nameLocations":["47230:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"47230:12:44"},"nodeType":"ModifierInvocation","src":"47230:12:44"}],"name":"setTargetAllocation","nameLocation":"47022:19:44","nodeType":"FunctionDefinition","overrides":{"id":13204,"nodeType":"OverrideSpecifier","overrides":[],"src":"47197:8:44"},"parameters":{"id":13203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13196,"mutability":"mutable","name":"target","nameLocation":"47067:6:44","nodeType":"VariableDeclaration","scope":13224,"src":"47051:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},"typeName":{"id":13195,"nodeType":"UserDefinedTypeName","pathNode":{"id":13194,"name":"IIssuanceTarget","nameLocations":["47051:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"47051:15:44"},"referencedDeclaration":1631,"src":"47051:15:44","typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},"visibility":"internal"},{"constant":false,"id":13198,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"47091:20:44","nodeType":"VariableDeclaration","scope":13224,"src":"47083:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13197,"name":"uint256","nodeType":"ElementaryTypeName","src":"47083:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13200,"mutability":"mutable","name":"selfMintingRate","nameLocation":"47129:15:44","nodeType":"VariableDeclaration","scope":13224,"src":"47121:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13199,"name":"uint256","nodeType":"ElementaryTypeName","src":"47121:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13202,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"47162:19:44","nodeType":"VariableDeclaration","scope":13224,"src":"47154:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13201,"name":"uint256","nodeType":"ElementaryTypeName","src":"47154:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47041:146:44"},"returnParameters":{"id":13212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13224,"src":"47252:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13210,"name":"bool","nodeType":"ElementaryTypeName","src":"47252:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47251:6:44"},"scope":13968,"src":"47013:366:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1428],"body":{"id":13244,"nodeType":"Block","src":"47584:67:44","statements":[{"expression":{"arguments":[{"id":13239,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"47619:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13240,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"47631:5:44","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47637:6:44","memberName":"number","nodeType":"MemberAccess","src":"47631:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13238,"name":"_setDefaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13387,"src":"47601:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":13242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47601:43:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13237,"id":13243,"nodeType":"Return","src":"47594:50:44"}]},"documentation":{"id":13225,"nodeType":"StructuredDocumentation","src":"47385:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"697cf322","id":13245,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13231,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"47541:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13232,"kind":"modifierInvocation","modifierName":{"id":13230,"name":"onlyRole","nameLocations":["47532:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"47532:8:44"},"nodeType":"ModifierInvocation","src":"47532:23:44"},{"id":13234,"kind":"modifierInvocation","modifierName":{"id":13233,"name":"nonReentrant","nameLocations":["47556:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"47556:12:44"},"nodeType":"ModifierInvocation","src":"47556:12:44"}],"name":"setDefaultTarget","nameLocation":"47463:16:44","nodeType":"FunctionDefinition","overrides":{"id":13229,"nodeType":"OverrideSpecifier","overrides":[],"src":"47523:8:44"},"parameters":{"id":13228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13227,"mutability":"mutable","name":"newAddress","nameLocation":"47497:10:44","nodeType":"VariableDeclaration","scope":13245,"src":"47489:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13226,"name":"address","nodeType":"ElementaryTypeName","src":"47489:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47479:34:44"},"returnParameters":{"id":13237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13245,"src":"47578:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13235,"name":"bool","nodeType":"ElementaryTypeName","src":"47578:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47577:6:44"},"scope":13968,"src":"47454:197:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1438],"body":{"id":13266,"nodeType":"Block","src":"47893:74:44","statements":[{"expression":{"arguments":[{"id":13262,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13248,"src":"47928:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13263,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13250,"src":"47940:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13261,"name":"_setDefaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13387,"src":"47910:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47910:50:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13260,"id":13265,"nodeType":"Return","src":"47903:57:44"}]},"documentation":{"id":13246,"nodeType":"StructuredDocumentation","src":"47657:64:44","text":" @inheritdoc IIssuanceAllocationAdministration"},"functionSelector":"d012a15b","id":13267,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13254,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"47850:13:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13255,"kind":"modifierInvocation","modifierName":{"id":13253,"name":"onlyRole","nameLocations":["47841:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"47841:8:44"},"nodeType":"ModifierInvocation","src":"47841:23:44"},{"id":13257,"kind":"modifierInvocation","modifierName":{"id":13256,"name":"nonReentrant","nameLocations":["47865:12:44"],"nodeType":"IdentifierPath","referencedDeclaration":4478,"src":"47865:12:44"},"nodeType":"ModifierInvocation","src":"47865:12:44"}],"name":"setDefaultTarget","nameLocation":"47735:16:44","nodeType":"FunctionDefinition","overrides":{"id":13252,"nodeType":"OverrideSpecifier","overrides":[],"src":"47832:8:44"},"parameters":{"id":13251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13248,"mutability":"mutable","name":"newAddress","nameLocation":"47769:10:44","nodeType":"VariableDeclaration","scope":13267,"src":"47761:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13247,"name":"address","nodeType":"ElementaryTypeName","src":"47761:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13250,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"47797:19:44","nodeType":"VariableDeclaration","scope":13267,"src":"47789:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13249,"name":"uint256","nodeType":"ElementaryTypeName","src":"47789:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47751:71:44"},"returnParameters":{"id":13260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13267,"src":"47887:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13258,"name":"bool","nodeType":"ElementaryTypeName","src":"47887:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47886:6:44"},"scope":13968,"src":"47726:241:44","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13386,"nodeType":"Block","src":"48897:1795:44","statements":[{"assignments":[13279],"declarations":[{"constant":false,"id":13279,"mutability":"mutable","name":"$","nameLocation":"48937:1:44","nodeType":"VariableDeclaration","scope":13386,"src":"48907:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13278,"nodeType":"UserDefinedTypeName","pathNode":{"id":13277,"name":"IssuanceAllocatorData","nameLocations":["48907:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"48907:21:44"},"referencedDeclaration":11802,"src":"48907:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13280,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"48941:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48941:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"48907:64:44"},{"assignments":[13284],"declarations":[{"constant":false,"id":13284,"mutability":"mutable","name":"oldAddress","nameLocation":"48990:10:44","nodeType":"VariableDeclaration","scope":13386,"src":"48982:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13283,"name":"address","nodeType":"ElementaryTypeName","src":"48982:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":13289,"initialValue":{"baseExpression":{"expression":{"id":13285,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"49003:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49005:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"49003:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13288,"indexExpression":{"hexValue":"30","id":13287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49021:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49003:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48982:41:44"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13290,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"49037:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13291,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"49051:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49037:24:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13295,"nodeType":"IfStatement","src":"49033:41:44","trueBody":{"expression":{"hexValue":"74727565","id":13293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49070:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13276,"id":13294,"nodeType":"Return","src":"49063:11:44"}},{"body":{"id":13320,"nodeType":"Block","src":"49562:115:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":13309,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"49584:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49586:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"49584:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13312,"indexExpression":{"id":13311,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13297,"src":"49602:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49584:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":13313,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"49608:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49584:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":13316,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"49654:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13315,"name":"CannotSetDefaultToAllocatedTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11858,"src":"49620:33:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49620:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":13308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49576:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":13318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49576:90:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13319,"nodeType":"ExpressionStatement","src":"49576:90:44"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13300,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13297,"src":"49527:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13301,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"49531:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49533:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"49531:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49549:6:44","memberName":"length","nodeType":"MemberAccess","src":"49531:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"49527:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13321,"initializationExpression":{"assignments":[13297],"declarations":[{"constant":false,"id":13297,"mutability":"mutable","name":"i","nameLocation":"49520:1:44","nodeType":"VariableDeclaration","scope":13321,"src":"49512:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13296,"name":"uint256","nodeType":"ElementaryTypeName","src":"49512:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13299,"initialValue":{"hexValue":"31","id":13298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49524:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"49512:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"49557:3:44","subExpression":{"id":13305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13297,"src":"49559:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13307,"nodeType":"ExpressionStatement","src":"49557:3:44"},"nodeType":"ForStatement","src":"49507:170:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13322,"name":"_distributeIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"49691:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49691:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13324,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13272,"src":"49715:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"49691:43:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13328,"nodeType":"IfStatement","src":"49687:61:44","trueBody":{"expression":{"hexValue":"66616c7365","id":13326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49743:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13276,"id":13327,"nodeType":"Return","src":"49736:12:44"}},{"expression":{"arguments":[{"id":13330,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"49843:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13329,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"49829:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":13331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49829:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13332,"nodeType":"ExpressionStatement","src":"49829:25:44"},{"expression":{"arguments":[{"id":13334,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"49878:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13333,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"49864:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":13335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49864:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13336,"nodeType":"ExpressionStatement","src":"49864:25:44"},{"assignments":[13338],"declarations":[{"constant":false,"id":13338,"mutability":"mutable","name":"newAddressNotificationBlock","nameLocation":"49997:27:44","nodeType":"VariableDeclaration","scope":13386,"src":"49989:35:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13337,"name":"uint256","nodeType":"ElementaryTypeName","src":"49989:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13344,"initialValue":{"expression":{"baseExpression":{"expression":{"id":13339,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50027:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50029:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"50027:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13342,"indexExpression":{"id":13341,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"50047:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"50027:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"id":13343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50059:23:44","memberName":"lastChangeNotifiedBlock","nodeType":"MemberAccess","referencedDeclaration":1598,"src":"50027:55:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"49989:93:44"},{"expression":{"id":13351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13345,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50248:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50250:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"50248:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13349,"indexExpression":{"hexValue":"30","id":13347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50266:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"50248:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13350,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"50271:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"50248:33:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13352,"nodeType":"ExpressionStatement","src":"50248:33:44"},{"expression":{"id":13362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13353,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50291:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50293:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"50291:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13357,"indexExpression":{"id":13355,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"50311:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"50291:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":13358,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50325:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50327:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"50325:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13361,"indexExpression":{"id":13360,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"50345:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"50325:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"src":"50291:65:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"id":13363,"nodeType":"ExpressionStatement","src":"50291:65:44"},{"expression":{"id":13368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"50366:38:44","subExpression":{"baseExpression":{"expression":{"id":13364,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50373:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50375:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"50373:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13367,"indexExpression":{"id":13366,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"50393:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"50373:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13369,"nodeType":"ExpressionStatement","src":"50366:38:44"},{"expression":{"id":13377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":13370,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"50519:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50521:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"50519:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13374,"indexExpression":{"id":13372,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"50539:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"50519:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"id":13375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"50551:23:44","memberName":"lastChangeNotifiedBlock","nodeType":"MemberAccess","referencedDeclaration":1598,"src":"50519:55:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13376,"name":"newAddressNotificationBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13338,"src":"50577:27:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"50519:85:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13378,"nodeType":"ExpressionStatement","src":"50519:85:44"},{"eventCall":{"arguments":[{"id":13380,"name":"oldAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"50641:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13381,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13270,"src":"50653:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13379,"name":"DefaultTargetUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11892,"src":"50620:20:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":13382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50620:44:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13383,"nodeType":"EmitStatement","src":"50615:49:44"},{"expression":{"hexValue":"74727565","id":13384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"50681:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13276,"id":13385,"nodeType":"Return","src":"50674:11:44"}]},"documentation":{"id":13268,"nodeType":"StructuredDocumentation","src":"47973:819:44","text":" @notice Internal implementation for setting default target\n @param newAddress The address to set as the new default target\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return True if the value is applied (including if already the case), false if not applied due to paused state\n @dev The default target automatically receives the portion of issuance not allocated to other targets\n @dev This maintains the invariant that total allocation always equals issuancePerBlock\n @dev Reverts if attempting to set to an address that has a normal (non-default) allocation\n @dev Allocation data is copied from the old default to the new default, including lastChangeNotifiedBlock\n @dev No-op if setting to the same address"},"id":13387,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultTarget","nameLocation":"48806:17:44","nodeType":"FunctionDefinition","parameters":{"id":13273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13270,"mutability":"mutable","name":"newAddress","nameLocation":"48832:10:44","nodeType":"VariableDeclaration","scope":13387,"src":"48824:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13269,"name":"address","nodeType":"ElementaryTypeName","src":"48824:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13272,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"48852:19:44","nodeType":"VariableDeclaration","scope":13387,"src":"48844:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13271,"name":"uint256","nodeType":"ElementaryTypeName","src":"48844:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48823:49:44"},"returnParameters":{"id":13276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13387,"src":"48891:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13274,"name":"bool","nodeType":"ElementaryTypeName","src":"48891:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48890:6:44"},"scope":13968,"src":"48797:1895:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13449,"nodeType":"Block","src":"51411:1178:44","statements":[{"condition":{"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"51425:73:44","subExpression":{"arguments":[{"id":13402,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"51452:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13403,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"51460:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13404,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"51482:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13401,"name":"_validateAllocationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13540,"src":"51426:25:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256,uint256) view returns (bool)"}},"id":13405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51426:72:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13409,"nodeType":"IfStatement","src":"51421:90:44","trueBody":{"expression":{"hexValue":"74727565","id":13407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51507:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13400,"id":13408,"nodeType":"Return","src":"51500:11:44"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13410,"name":"_distributeIssuance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12264,"src":"51526:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint256_$","typeString":"function () returns (uint256)"}},"id":13411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51526:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13412,"name":"minDistributedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13396,"src":"51550:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"51526:43:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13416,"nodeType":"IfStatement","src":"51522:61:44","trueBody":{"expression":{"hexValue":"66616c7365","id":13414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51578:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13400,"id":13415,"nodeType":"Return","src":"51571:12:44"}},{"expression":{"arguments":[{"id":13418,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"51608:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13417,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"51594:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":13419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51594:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13420,"nodeType":"ExpressionStatement","src":"51594:21:44"},{"expression":{"arguments":[{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13422,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"51639:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51639:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"51670:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"51639:46:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13426,"indexExpression":{"hexValue":"30","id":13425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51686:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"51639:49:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13421,"name":"_notifyTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"51625:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51625:64:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13428,"nodeType":"ExpressionStatement","src":"51625:64:44"},{"expression":{"arguments":[{"id":13430,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"52292:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13431,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"52300:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13432,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"52322:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13429,"name":"_validateAndUpdateTotalAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13623,"src":"52257:34:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":13433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52257:81:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13434,"nodeType":"ExpressionStatement","src":"52257:81:44"},{"expression":{"arguments":[{"id":13436,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"52429:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13437,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"52437:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13438,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"52459:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13435,"name":"_updateTargetAllocationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"52401:27:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52401:74:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13440,"nodeType":"ExpressionStatement","src":"52401:74:44"},{"eventCall":{"arguments":[{"id":13442,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13390,"src":"52515:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13443,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"52523:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13444,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"52545:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13441,"name":"TargetAllocationUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11878,"src":"52491:23:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":13445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52491:70:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13446,"nodeType":"EmitStatement","src":"52486:75:44"},{"expression":{"hexValue":"74727565","id":13447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"52578:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13400,"id":13448,"nodeType":"Return","src":"52571:11:44"}]},"documentation":{"id":13388,"nodeType":"StructuredDocumentation","src":"50698:516:44","text":" @notice Internal implementation for setting target allocation\n @param target Address of the target to update\n @param allocatorMintingRate Allocator-minting rate for the target (tokens per block)\n @param selfMintingRate Self-minting rate for the target (tokens per block)\n @param minDistributedBlock Minimum block number that distribution must have reached\n @return True if the value is applied (including if already the case), false if not applied due to paused state"},"id":13450,"implemented":true,"kind":"function","modifiers":[],"name":"_setTargetAllocation","nameLocation":"51228:20:44","nodeType":"FunctionDefinition","parameters":{"id":13397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13390,"mutability":"mutable","name":"target","nameLocation":"51266:6:44","nodeType":"VariableDeclaration","scope":13450,"src":"51258:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13389,"name":"address","nodeType":"ElementaryTypeName","src":"51258:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13392,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"51290:20:44","nodeType":"VariableDeclaration","scope":13450,"src":"51282:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13391,"name":"uint256","nodeType":"ElementaryTypeName","src":"51282:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13394,"mutability":"mutable","name":"selfMintingRate","nameLocation":"51328:15:44","nodeType":"VariableDeclaration","scope":13450,"src":"51320:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13393,"name":"uint256","nodeType":"ElementaryTypeName","src":"51320:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13396,"mutability":"mutable","name":"minDistributedBlock","nameLocation":"51361:19:44","nodeType":"VariableDeclaration","scope":13450,"src":"51353:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13395,"name":"uint256","nodeType":"ElementaryTypeName","src":"51353:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51248:138:44"},"returnParameters":{"id":13400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13450,"src":"51405:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13398,"name":"bool","nodeType":"ElementaryTypeName","src":"51405:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51404:6:44"},"scope":13968,"src":"51219:1370:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13539,"nodeType":"Block","src":"53302:768:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13463,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"53320:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":13466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53338:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"53330:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13464,"name":"address","nodeType":"ElementaryTypeName","src":"53330:7:44","typeDescriptions":{}}},"id":13467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53330:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"53320:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13469,"name":"TargetAddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11818,"src":"53342:25:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53342:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":13462,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"53312:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":13471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53312:58:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13472,"nodeType":"ExpressionStatement","src":"53312:58:44"},{"assignments":[13475],"declarations":[{"constant":false,"id":13475,"mutability":"mutable","name":"$","nameLocation":"53411:1:44","nodeType":"VariableDeclaration","scope":13539,"src":"53381:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13474,"nodeType":"UserDefinedTypeName","pathNode":{"id":13473,"name":"IssuanceAllocatorData","nameLocations":["53381:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"53381:21:44"},"referencedDeclaration":11802,"src":"53381:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13478,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13476,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"53415:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53415:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"53381:64:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13480,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"53464:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"expression":{"id":13481,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13475,"src":"53474:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"53476:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"53474:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13484,"indexExpression":{"hexValue":"30","id":13483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53492:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"53474:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"53464:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"baseExpression":{"expression":{"id":13487,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13475,"src":"53532:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"53534:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"53532:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13490,"indexExpression":{"hexValue":"30","id":13489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53550:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"53532:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13486,"name":"CannotSetAllocationForDefaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"53496:35:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53496:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":13479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"53456:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":13492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53456:98:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13493,"nodeType":"ExpressionStatement","src":"53456:98:44"},{"assignments":[13496],"declarations":[{"constant":false,"id":13496,"mutability":"mutable","name":"targetData","nameLocation":"53590:10:44","nodeType":"VariableDeclaration","scope":13539,"src":"53565:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13495,"nodeType":"UserDefinedTypeName","pathNode":{"id":13494,"name":"AllocationTarget","nameLocations":["53565:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"53565:16:44"},"referencedDeclaration":1599,"src":"53565:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13501,"initialValue":{"baseExpression":{"expression":{"id":13497,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13475,"src":"53603:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"53605:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"53603:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13500,"indexExpression":{"id":13499,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"53623:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"53603:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"53565:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13502,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13496,"src":"53645:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"53656:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"53645:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13504,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13455,"src":"53680:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"53645:55:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13506,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13496,"src":"53704:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"53715:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"53704:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13508,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"53734:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"53704:45:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"53645:104:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13513,"nodeType":"IfStatement","src":"53641:134:44","trueBody":{"expression":{"hexValue":"66616c7365","id":13511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"53770:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13461,"id":13512,"nodeType":"Return","src":"53763:12:44"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13514,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13455,"src":"53810:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53834:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"53810:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13517,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"53839:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53858:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"53839:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"53810:49:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13536,"nodeType":"IfStatement","src":"53806:235:44","trueBody":{"expression":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":13527,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"53937:15:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":13526,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"53932:4:44","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53932:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":13529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53954:11:44","memberName":"interfaceId","nodeType":"MemberAccess","src":"53932:33:44","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":13523,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"53906:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13522,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"53898:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$5012_$","typeString":"type(contract IERC165)"}},"id":13524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53898:15:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$5012","typeString":"contract IERC165"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"53914:17:44","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":5011,"src":"53898:33:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53898:68:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":13532,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"54020:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13531,"name":"TargetDoesNotSupportIIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11839,"src":"53984:35:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":13533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53984:43:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":13521,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"53873:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":13534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53873:168:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13535,"nodeType":"ExpressionStatement","src":"53873:168:44"}},{"expression":{"hexValue":"74727565","id":13537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"54059:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13461,"id":13538,"nodeType":"Return","src":"54052:11:44"}]},"documentation":{"id":13451,"nodeType":"StructuredDocumentation","src":"52595:538:44","text":" @notice Validates allocation change for a target\n @param target Address of the target to validate\n @param allocatorMintingRate Allocator-minting rate for the target (tokens per block)\n @param selfMintingRate Self-minting rate for the target (tokens per block)\n @return True if validation passes and allocation change is needed, false if allocation is already set to these values\n @dev Reverts if target is address(0), default target, or doesn't support IIssuanceTarget (for non-zero rates)"},"id":13540,"implemented":true,"kind":"function","modifiers":[],"name":"_validateAllocationChange","nameLocation":"53147:25:44","nodeType":"FunctionDefinition","parameters":{"id":13458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13453,"mutability":"mutable","name":"target","nameLocation":"53190:6:44","nodeType":"VariableDeclaration","scope":13540,"src":"53182:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13452,"name":"address","nodeType":"ElementaryTypeName","src":"53182:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13455,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"53214:20:44","nodeType":"VariableDeclaration","scope":13540,"src":"53206:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13454,"name":"uint256","nodeType":"ElementaryTypeName","src":"53206:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13457,"mutability":"mutable","name":"selfMintingRate","nameLocation":"53252:15:44","nodeType":"VariableDeclaration","scope":13540,"src":"53244:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"53244:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53172:101:44"},"returnParameters":{"id":13461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13540,"src":"53296:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13459,"name":"bool","nodeType":"ElementaryTypeName","src":"53296:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53295:6:44"},"scope":13968,"src":"53138:932:44","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13622,"nodeType":"Block","src":"54838:1306:44","statements":[{"assignments":[13552],"declarations":[{"constant":false,"id":13552,"mutability":"mutable","name":"$","nameLocation":"54878:1:44","nodeType":"VariableDeclaration","scope":13622,"src":"54848:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13551,"nodeType":"UserDefinedTypeName","pathNode":{"id":13550,"name":"IssuanceAllocatorData","nameLocations":["54848:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"54848:21:44"},"referencedDeclaration":11802,"src":"54848:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13555,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13553,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"54882:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54882:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"54848:64:44"},{"assignments":[13558],"declarations":[{"constant":false,"id":13558,"mutability":"mutable","name":"targetData","nameLocation":"54947:10:44","nodeType":"VariableDeclaration","scope":13622,"src":"54922:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13557,"nodeType":"UserDefinedTypeName","pathNode":{"id":13556,"name":"AllocationTarget","nameLocations":["54922:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"54922:16:44"},"referencedDeclaration":1599,"src":"54922:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13563,"initialValue":{"baseExpression":{"expression":{"id":13559,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"54960:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"54962:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"54960:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13562,"indexExpression":{"id":13561,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13543,"src":"54980:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"54960:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"54922:65:44"},{"assignments":[13566],"declarations":[{"constant":false,"id":13566,"mutability":"mutable","name":"defaultTarget","nameLocation":"55022:13:44","nodeType":"VariableDeclaration","scope":13622,"src":"54997:38:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13565,"nodeType":"UserDefinedTypeName","pathNode":{"id":13564,"name":"AllocationTarget","nameLocations":["54997:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"54997:16:44"},"referencedDeclaration":1599,"src":"54997:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13574,"initialValue":{"baseExpression":{"expression":{"id":13567,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"55038:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"55040:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"55038:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13573,"indexExpression":{"baseExpression":{"expression":{"id":13569,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"55058:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"55060:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"55058:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13572,"indexExpression":{"hexValue":"30","id":13571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"55076:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"55058:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"55038:41:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"54997:82:44"},{"assignments":[13576],"declarations":[{"constant":false,"id":13576,"mutability":"mutable","name":"availableRate","nameLocation":"55550:13:44","nodeType":"VariableDeclaration","scope":13622,"src":"55542:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13575,"name":"uint256","nodeType":"ElementaryTypeName","src":"55542:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13585,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13577,"name":"defaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13566,"src":"55566:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"55580:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"55566:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":13579,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13558,"src":"55615:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"55626:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"55615:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55566:80:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":13582,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13558,"src":"55661:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"55672:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"55661:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55566:121:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"55542:145:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13587,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"55718:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13588,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"55741:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55718:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13590,"name":"availableRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"55760:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55718:55:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13593,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"55867:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13594,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"55890:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55867:38:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13596,"name":"availableRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"55907:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13592,"name":"InsufficientAllocationAvailable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11825,"src":"55835:31:44","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":13597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55835:86:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":13586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"55697:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":13598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55697:234:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13599,"nodeType":"ExpressionStatement","src":"55697:234:44"},{"expression":{"id":13608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13600,"name":"defaultTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13566,"src":"55942:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"55956:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"55942:34:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13603,"name":"availableRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"55979:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13604,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13545,"src":"55995:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55979:36:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13606,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"56018:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55979:54:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"55942:91:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13609,"nodeType":"ExpressionStatement","src":"55942:91:44"},{"expression":{"id":13620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13610,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"56043:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"56045:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"56043:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13613,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"56068:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"56070:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"56068:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":13615,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13558,"src":"56093:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"56104:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"56093:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"56068:51:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13618,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13547,"src":"56122:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"56068:69:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"56043:94:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13621,"nodeType":"ExpressionStatement","src":"56043:94:44"}]},"documentation":{"id":13541,"nodeType":"StructuredDocumentation","src":"54076:604:44","text":" @notice Updates global allocation totals and auto-adjusts default target to maintain 100% invariant\n @param target Address of the target being updated\n @param allocatorMintingRate New allocator-minting rate for the target (tokens per block)\n @param selfMintingRate New self-minting rate for the target (tokens per block)\n @dev The default target (at targetAddresses[0]) is automatically adjusted to ensure total allocation equals issuancePerBlock\n @dev This function is called BEFORE the target's allocation data has been updated so we can read old values"},"id":13623,"implemented":true,"kind":"function","modifiers":[],"name":"_validateAndUpdateTotalAllocations","nameLocation":"54694:34:44","nodeType":"FunctionDefinition","parameters":{"id":13548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13543,"mutability":"mutable","name":"target","nameLocation":"54746:6:44","nodeType":"VariableDeclaration","scope":13623,"src":"54738:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13542,"name":"address","nodeType":"ElementaryTypeName","src":"54738:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13545,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"54770:20:44","nodeType":"VariableDeclaration","scope":13623,"src":"54762:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13544,"name":"uint256","nodeType":"ElementaryTypeName","src":"54762:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13547,"mutability":"mutable","name":"selfMintingRate","nameLocation":"54808:15:44","nodeType":"VariableDeclaration","scope":13623,"src":"54800:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13546,"name":"uint256","nodeType":"ElementaryTypeName","src":"54800:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54728:101:44"},"returnParameters":{"id":13549,"nodeType":"ParameterList","parameters":[],"src":"54838:0:44"},"scope":13968,"src":"54685:1459:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13691,"nodeType":"Block","src":"56744:1648:44","statements":[{"assignments":[13635],"declarations":[{"constant":false,"id":13635,"mutability":"mutable","name":"$","nameLocation":"56784:1:44","nodeType":"VariableDeclaration","scope":13691,"src":"56754:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13634,"nodeType":"UserDefinedTypeName","pathNode":{"id":13633,"name":"IssuanceAllocatorData","nameLocations":["56754:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"56754:21:44"},"referencedDeclaration":11802,"src":"56754:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13638,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13636,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"56788:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56788:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"56754:64:44"},{"assignments":[13641],"declarations":[{"constant":false,"id":13641,"mutability":"mutable","name":"targetData","nameLocation":"56853:10:44","nodeType":"VariableDeclaration","scope":13691,"src":"56828:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13640,"nodeType":"UserDefinedTypeName","pathNode":{"id":13639,"name":"AllocationTarget","nameLocations":["56828:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"56828:16:44"},"referencedDeclaration":1599,"src":"56828:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13646,"initialValue":{"baseExpression":{"expression":{"id":13642,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13635,"src":"56866:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"56868:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"56866:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13645,"indexExpression":{"id":13644,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"56886:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"56866:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"56828:65:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13647,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13628,"src":"57901:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"57925:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"57901:25:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13650,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13630,"src":"57930:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":13651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"57949:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"57930:20:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"57901:49:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13689,"nodeType":"Block","src":"58276:110:44","statements":[{"expression":{"arguments":[{"id":13686,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"58368:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13685,"name":"_removeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13756,"src":"58354:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58354:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13688,"nodeType":"ExpressionStatement","src":"58354:21:44"}]},"id":13690,"nodeType":"IfStatement","src":"57897:489:44","trueBody":{"id":13684,"nodeType":"Block","src":"57952:318:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13654,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"58029:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58040:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"58029:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"58064:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"58029:36:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13658,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"58069:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58080:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"58069:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"58099:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"58069:31:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"58029:71:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13671,"nodeType":"IfStatement","src":"58025:107:44","trueBody":{"expression":{"arguments":[{"id":13668,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"58125:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13663,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13635,"src":"58102:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58104:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"58102:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"58120:4:44","memberName":"push","nodeType":"MemberAccess","src":"58102:22:44","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":13669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58102:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13670,"nodeType":"ExpressionStatement","src":"58102:30:44"}},{"expression":{"id":13676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13672,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"58147:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"58158:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"58147:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13675,"name":"allocatorMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13628,"src":"58181:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"58147:54:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13677,"nodeType":"ExpressionStatement","src":"58147:54:44"},{"expression":{"id":13682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13678,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13641,"src":"58215:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"58226:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"58215:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13681,"name":"selfMintingRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13630,"src":"58244:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"58215:44:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13683,"nodeType":"ExpressionStatement","src":"58215:44:44"}]}}]},"documentation":{"id":13624,"nodeType":"StructuredDocumentation","src":"56150:443:44","text":" @notice Sets target allocation values and adds/removes target from active list\n @param target Address of the target being updated\n @param allocatorMintingRate New allocator-minting rate for the target (tokens per block)\n @param selfMintingRate New self-minting rate for the target (tokens per block)\n @dev This function is never called for the default target (at index 0), which is handled separately"},"id":13692,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTargetAllocationData","nameLocation":"56607:27:44","nodeType":"FunctionDefinition","parameters":{"id":13631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13626,"mutability":"mutable","name":"target","nameLocation":"56652:6:44","nodeType":"VariableDeclaration","scope":13692,"src":"56644:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13625,"name":"address","nodeType":"ElementaryTypeName","src":"56644:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13628,"mutability":"mutable","name":"allocatorMintingRate","nameLocation":"56676:20:44","nodeType":"VariableDeclaration","scope":13692,"src":"56668:28:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13627,"name":"uint256","nodeType":"ElementaryTypeName","src":"56668:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13630,"mutability":"mutable","name":"selfMintingRate","nameLocation":"56714:15:44","nodeType":"VariableDeclaration","scope":13692,"src":"56706:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13629,"name":"uint256","nodeType":"ElementaryTypeName","src":"56706:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56634:101:44"},"returnParameters":{"id":13632,"nodeType":"ParameterList","parameters":[],"src":"56744:0:44"},"scope":13968,"src":"56598:1794:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13755,"nodeType":"Block","src":"58753:425:44","statements":[{"assignments":[13700],"declarations":[{"constant":false,"id":13700,"mutability":"mutable","name":"$","nameLocation":"58793:1:44","nodeType":"VariableDeclaration","scope":13755,"src":"58763:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13699,"nodeType":"UserDefinedTypeName","pathNode":{"id":13698,"name":"IssuanceAllocatorData","nameLocations":["58763:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"58763:21:44"},"referencedDeclaration":11802,"src":"58763:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13701,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"58797:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58797:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"58763:64:44"},{"body":{"id":13753,"nodeType":"Block","src":"58893:279:44","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":13716,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"58911:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58913:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"58911:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13719,"indexExpression":{"id":13718,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"58929:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"58911:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13720,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13695,"src":"58935:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"58911:30:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13752,"nodeType":"IfStatement","src":"58907:255:44","trueBody":{"id":13751,"nodeType":"Block","src":"58943:219:44","statements":[{"expression":{"id":13735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":13722,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"58961:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58963:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"58961:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13726,"indexExpression":{"id":13724,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"58979:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"58961:20:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":13727,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"58984:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58986:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"58984:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13734,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":13729,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"59002:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59004:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"59002:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"59020:6:44","memberName":"length","nodeType":"MemberAccess","src":"59002:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"59029:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"59002:28:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"58984:47:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"58961:70:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13736,"nodeType":"ExpressionStatement","src":"58961:70:44"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":13737,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"59049:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59051:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"59049:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"59067:3:44","memberName":"pop","nodeType":"MemberAccess","src":"59049:21:44","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":13742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59049:23:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13743,"nodeType":"ExpressionStatement","src":"59049:23:44"},{"expression":{"id":13748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"59090:34:44","subExpression":{"baseExpression":{"expression":{"id":13744,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"59097:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59099:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"59097:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13747,"indexExpression":{"id":13746,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13695,"src":"59117:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"59097:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13749,"nodeType":"ExpressionStatement","src":"59090:34:44"},{"id":13750,"nodeType":"Break","src":"59142:5:44"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13708,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"58858:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":13709,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13700,"src":"58862:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"58864:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"58862:17:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"58880:6:44","memberName":"length","nodeType":"MemberAccess","src":"58862:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"58858:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13754,"initializationExpression":{"assignments":[13705],"declarations":[{"constant":false,"id":13705,"mutability":"mutable","name":"i","nameLocation":"58851:1:44","nodeType":"VariableDeclaration","scope":13754,"src":"58843:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13704,"name":"uint256","nodeType":"ElementaryTypeName","src":"58843:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13707,"initialValue":{"hexValue":"31","id":13706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"58855:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"58843:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"58888:3:44","subExpression":{"id":13713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"58890:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13715,"nodeType":"ExpressionStatement","src":"58888:3:44"},"nodeType":"ForStatement","src":"58838:334:44"}]},"documentation":{"id":13693,"nodeType":"StructuredDocumentation","src":"58398:303:44","text":" @notice Removes target from targetAddresses array and deletes its allocation data\n @param target Address of the target to remove\n @dev Starts at index 1 since index 0 is always the default target and should never be removed\n @dev Uses swap-and-pop for gas efficiency"},"id":13756,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTarget","nameLocation":"58715:13:44","nodeType":"FunctionDefinition","parameters":{"id":13696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13695,"mutability":"mutable","name":"target","nameLocation":"58737:6:44","nodeType":"VariableDeclaration","scope":13756,"src":"58729:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13694,"name":"address","nodeType":"ElementaryTypeName","src":"58729:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58728:16:44"},"returnParameters":{"id":13697,"nodeType":"ParameterList","parameters":[],"src":"58753:0:44"},"scope":13968,"src":"58706:472:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[1557],"body":{"id":13767,"nodeType":"Block","src":"59346:71:44","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13763,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"59363:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59363:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59394:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"59363:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13762,"id":13766,"nodeType":"Return","src":"59356:54:44"}]},"documentation":{"id":13757,"nodeType":"StructuredDocumentation","src":"59213:56:44","text":" @inheritdoc IIssuanceAllocationStatus"},"functionSelector":"79d5fc54","id":13768,"implemented":true,"kind":"function","modifiers":[],"name":"getIssuancePerBlock","nameLocation":"59283:19:44","nodeType":"FunctionDefinition","overrides":{"id":13759,"nodeType":"OverrideSpecifier","overrides":[],"src":"59319:8:44"},"parameters":{"id":13758,"nodeType":"ParameterList","parameters":[],"src":"59302:2:44"},"returnParameters":{"id":13762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13768,"src":"59337:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13760,"name":"uint256","nodeType":"ElementaryTypeName","src":"59337:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59336:9:44"},"scope":13968,"src":"59274:143:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1564],"body":{"id":13791,"nodeType":"Block","src":"59574:325:44","statements":[{"assignments":[13778],"declarations":[{"constant":false,"id":13778,"mutability":"mutable","name":"$","nameLocation":"59614:1:44","nodeType":"VariableDeclaration","scope":13791,"src":"59584:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13777,"nodeType":"UserDefinedTypeName","pathNode":{"id":13776,"name":"IssuanceAllocatorData","nameLocations":["59584:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"59584:21:44"},"referencedDeclaration":11802,"src":"59584:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13781,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13779,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"59618:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59618:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"59584:64:44"},{"expression":{"arguments":[{"expression":{"id":13783,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"59736:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59738:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"59736:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13785,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"59799:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59801:20:44","memberName":"lastSelfMintingBlock","nodeType":"MemberAccess","referencedDeclaration":11786,"src":"59799:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13787,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13778,"src":"59858:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"59860:17:44","memberName":"selfMintingOffset","nodeType":"MemberAccess","referencedDeclaration":11788,"src":"59858:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13782,"name":"DistributionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"59677:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DistributionState_$1607_storage_ptr_$","typeString":"type(struct DistributionState storage pointer)"}},"id":13789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["59713:21:44","59777:20:44","59839:17:44"],"names":["lastDistributionBlock","lastSelfMintingBlock","selfMintingOffset"],"nodeType":"FunctionCall","src":"59677:215:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DistributionState_$1607_memory_ptr","typeString":"struct DistributionState memory"}},"functionReturnParameters":13775,"id":13790,"nodeType":"Return","src":"59658:234:44"}]},"documentation":{"id":13769,"nodeType":"StructuredDocumentation","src":"59423:56:44","text":" @inheritdoc IIssuanceAllocationStatus"},"functionSelector":"ee56977e","id":13792,"implemented":true,"kind":"function","modifiers":[],"name":"getDistributionState","nameLocation":"59493:20:44","nodeType":"FunctionDefinition","overrides":{"id":13771,"nodeType":"OverrideSpecifier","overrides":[],"src":"59530:8:44"},"parameters":{"id":13770,"nodeType":"ParameterList","parameters":[],"src":"59513:2:44"},"returnParameters":{"id":13775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13792,"src":"59548:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DistributionState_$1607_memory_ptr","typeString":"struct DistributionState"},"typeName":{"id":13773,"nodeType":"UserDefinedTypeName","pathNode":{"id":13772,"name":"DistributionState","nameLocations":["59548:17:44"],"nodeType":"IdentifierPath","referencedDeclaration":1607,"src":"59548:17:44"},"referencedDeclaration":1607,"src":"59548:17:44","typeDescriptions":{"typeIdentifier":"t_struct$_DistributionState_$1607_storage_ptr","typeString":"struct DistributionState"}},"visibility":"internal"}],"src":"59547:26:44"},"scope":13968,"src":"59484:415:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1551],"body":{"id":13804,"nodeType":"Block","src":"60033:77:44","statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13799,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"60050:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60050:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"60081:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"60050:46:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"60097:6:44","memberName":"length","nodeType":"MemberAccess","src":"60050:53:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13798,"id":13803,"nodeType":"Return","src":"60043:60:44"}]},"documentation":{"id":13793,"nodeType":"StructuredDocumentation","src":"59905:56:44","text":" @inheritdoc IIssuanceAllocationStatus"},"functionSelector":"4a1293b7","id":13805,"implemented":true,"kind":"function","modifiers":[],"name":"getTargetCount","nameLocation":"59975:14:44","nodeType":"FunctionDefinition","overrides":{"id":13795,"nodeType":"OverrideSpecifier","overrides":[],"src":"60006:8:44"},"parameters":{"id":13794,"nodeType":"ParameterList","parameters":[],"src":"59989:2:44"},"returnParameters":{"id":13798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13805,"src":"60024:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13796,"name":"uint256","nodeType":"ElementaryTypeName","src":"60024:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60023:9:44"},"scope":13968,"src":"59966:144:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1537],"body":{"id":13817,"nodeType":"Block","src":"60249:70:44","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13813,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"60266:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60266:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"60297:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"60266:46:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":13812,"id":13816,"nodeType":"Return","src":"60259:53:44"}]},"documentation":{"id":13806,"nodeType":"StructuredDocumentation","src":"60116:56:44","text":" @inheritdoc IIssuanceAllocationStatus"},"functionSelector":"63fe3b56","id":13818,"implemented":true,"kind":"function","modifiers":[],"name":"getTargets","nameLocation":"60186:10:44","nodeType":"FunctionDefinition","overrides":{"id":13808,"nodeType":"OverrideSpecifier","overrides":[],"src":"60213:8:44"},"parameters":{"id":13807,"nodeType":"ParameterList","parameters":[],"src":"60196:2:44"},"returnParameters":{"id":13812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13818,"src":"60231:16:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13809,"name":"address","nodeType":"ElementaryTypeName","src":"60231:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13810,"nodeType":"ArrayTypeName","src":"60231:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"60230:18:44"},"scope":13968,"src":"60177:142:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1545],"body":{"id":13833,"nodeType":"Block","src":"60463:77:44","statements":[{"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13827,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"60480:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60480:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"60511:15:44","memberName":"targetAddresses","nodeType":"MemberAccess","referencedDeclaration":11796,"src":"60480:46:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13831,"indexExpression":{"id":13830,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13821,"src":"60527:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"60480:53:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":13826,"id":13832,"nodeType":"Return","src":"60473:60:44"}]},"documentation":{"id":13819,"nodeType":"StructuredDocumentation","src":"60325:56:44","text":" @inheritdoc IIssuanceAllocationStatus"},"functionSelector":"87ee921c","id":13834,"implemented":true,"kind":"function","modifiers":[],"name":"getTargetAt","nameLocation":"60395:11:44","nodeType":"FunctionDefinition","overrides":{"id":13823,"nodeType":"OverrideSpecifier","overrides":[],"src":"60436:8:44"},"parameters":{"id":13822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13821,"mutability":"mutable","name":"index","nameLocation":"60415:5:44","nodeType":"VariableDeclaration","scope":13834,"src":"60407:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13820,"name":"uint256","nodeType":"ElementaryTypeName","src":"60407:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60406:15:44"},"returnParameters":{"id":13826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13834,"src":"60454:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13824,"name":"address","nodeType":"ElementaryTypeName","src":"60454:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60453:9:44"},"scope":13968,"src":"60386:154:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1484],"body":{"id":13850,"nodeType":"Block","src":"60701:80:44","statements":[{"expression":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13844,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"60718:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60718:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"60749:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"60718:48:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13848,"indexExpression":{"id":13847,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"60767:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"60718:56:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"functionReturnParameters":13843,"id":13849,"nodeType":"Return","src":"60711:63:44"}]},"documentation":{"id":13835,"nodeType":"StructuredDocumentation","src":"60546:54:44","text":" @inheritdoc IIssuanceAllocationData"},"functionSelector":"48c3c62e","id":13851,"implemented":true,"kind":"function","modifiers":[],"name":"getTargetData","nameLocation":"60614:13:44","nodeType":"FunctionDefinition","overrides":{"id":13839,"nodeType":"OverrideSpecifier","overrides":[],"src":"60658:8:44"},"parameters":{"id":13838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13837,"mutability":"mutable","name":"target","nameLocation":"60636:6:44","nodeType":"VariableDeclaration","scope":13851,"src":"60628:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13836,"name":"address","nodeType":"ElementaryTypeName","src":"60628:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60627:16:44"},"returnParameters":{"id":13843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13851,"src":"60676:23:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_memory_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13841,"nodeType":"UserDefinedTypeName","pathNode":{"id":13840,"name":"AllocationTarget","nameLocations":["60676:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"60676:16:44"},"referencedDeclaration":1599,"src":"60676:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"src":"60675:25:44"},"scope":13968,"src":"60605:176:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1523],"body":{"id":13882,"nodeType":"Block","src":"61238:397:44","statements":[{"assignments":[13863],"declarations":[{"constant":false,"id":13863,"mutability":"mutable","name":"targetData","nameLocation":"61273:10:44","nodeType":"VariableDeclaration","scope":13882,"src":"61248:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13862,"nodeType":"UserDefinedTypeName","pathNode":{"id":13861,"name":"AllocationTarget","nameLocations":["61248:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"61248:16:44"},"referencedDeclaration":1599,"src":"61248:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13869,"initialValue":{"baseExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13864,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"61286:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61286:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"61317:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"61286:48:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13868,"indexExpression":{"id":13867,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13854,"src":"61335:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"61286:56:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"61248:94:44"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13871,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"61421:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"61432:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"61421:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":13873,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"61455:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"61466:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"61455:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"61421:60:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13876,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"61521:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"61532:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"61521:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13878,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13863,"src":"61587:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"61598:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"61587:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13870,"name":"Allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"61371:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Allocation_$1591_storage_ptr_$","typeString":"type(struct Allocation storage pointer)"}},"id":13880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["61400:19:44","61499:20:44","61570:15:44"],"names":["totalAllocationRate","allocatorMintingRate","selfMintingRate"],"nodeType":"FunctionCall","src":"61371:257:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"functionReturnParameters":13860,"id":13881,"nodeType":"Return","src":"61352:276:44"}]},"documentation":{"id":13852,"nodeType":"StructuredDocumentation","src":"60787:350:44","text":" @inheritdoc IIssuanceAllocationStatus\n @dev Returns assigned allocation regardless of whether target is address(0) or the default.\n @dev For address(0), no minting occurs but the allocation represents the unallocated portion.\n @dev For effective allocations excluding unmintable portion, use getTotalAllocation()."},"functionSelector":"84c48422","id":13883,"implemented":true,"kind":"function","modifiers":[],"name":"getTargetAllocation","nameLocation":"61151:19:44","nodeType":"FunctionDefinition","overrides":{"id":13856,"nodeType":"OverrideSpecifier","overrides":[],"src":"61201:8:44"},"parameters":{"id":13855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13854,"mutability":"mutable","name":"target","nameLocation":"61179:6:44","nodeType":"VariableDeclaration","scope":13883,"src":"61171:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13853,"name":"address","nodeType":"ElementaryTypeName","src":"61171:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61170:16:44"},"returnParameters":{"id":13860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13883,"src":"61219:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation"},"typeName":{"id":13858,"nodeType":"UserDefinedTypeName","pathNode":{"id":13857,"name":"Allocation","nameLocations":["61219:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":1591,"src":"61219:10:44"},"referencedDeclaration":1591,"src":"61219:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_storage_ptr","typeString":"struct Allocation"}},"visibility":"internal"}],"src":"61218:19:44"},"scope":13968,"src":"61142:493:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1506],"body":{"id":13918,"nodeType":"Block","src":"62239:500:44","statements":[{"assignments":[13895],"declarations":[{"constant":false,"id":13895,"mutability":"mutable","name":"$","nameLocation":"62279:1:44","nodeType":"VariableDeclaration","scope":13918,"src":"62249:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13894,"nodeType":"UserDefinedTypeName","pathNode":{"id":13893,"name":"IssuanceAllocatorData","nameLocations":["62249:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"62249:21:44"},"referencedDeclaration":11802,"src":"62249:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13896,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"62283:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62283:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"62249:64:44"},{"assignments":[13901],"declarations":[{"constant":false,"id":13901,"mutability":"mutable","name":"targetData","nameLocation":"62348:10:44","nodeType":"VariableDeclaration","scope":13918,"src":"62323:35:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"},"typeName":{"id":13900,"nodeType":"UserDefinedTypeName","pathNode":{"id":13899,"name":"AllocationTarget","nameLocations":["62323:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":1599,"src":"62323:16:44"},"referencedDeclaration":1599,"src":"62323:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget"}},"visibility":"internal"}],"id":13906,"initialValue":{"baseExpression":{"expression":{"id":13902,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"62361:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"62363:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"62361:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13905,"indexExpression":{"id":13904,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13886,"src":"62381:6:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"62361:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"nodeType":"VariableDeclarationStatement","src":"62323:65:44"},{"expression":{"arguments":[{"expression":{"id":13908,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13901,"src":"62482:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"62493:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"62482:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13910,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"62564:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"62566:21:44","memberName":"lastDistributionBlock","nodeType":"MemberAccess","referencedDeclaration":11784,"src":"62564:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13912,"name":"targetData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13901,"src":"62623:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage_ptr","typeString":"struct AllocationTarget storage pointer"}},"id":13913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"62634:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1596,"src":"62623:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13914,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13895,"src":"62695:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"62697:20:44","memberName":"lastSelfMintingBlock","nodeType":"MemberAccess","referencedDeclaration":11786,"src":"62695:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13907,"name":"TargetIssuancePerBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"62418:22:44","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TargetIssuancePerBlock_$1583_storage_ptr_$","typeString":"type(struct TargetIssuancePerBlock storage pointer)"}},"id":13916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["62459:21:44","62531:31:44","62605:16:44","62667:26:44"],"names":["allocatorIssuanceRate","allocatorIssuanceBlockAppliedTo","selfIssuanceRate","selfIssuanceBlockAppliedTo"],"nodeType":"FunctionCall","src":"62418:314:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TargetIssuancePerBlock_$1583_memory_ptr","typeString":"struct TargetIssuancePerBlock memory"}},"functionReturnParameters":13892,"id":13917,"nodeType":"Return","src":"62399:333:44"}]},"documentation":{"id":13884,"nodeType":"StructuredDocumentation","src":"61641:479:44","text":" @inheritdoc IIssuanceAllocationDistribution\n @dev Returns assigned issuance rates regardless of whether target is address(0) or the default.\n @dev For address(0), no minting occurs but rates reflect what would be issued if mintable.\n @dev selfIssuanceBlockAppliedTo reflects the last block for which self-minting allowances have been\n calculated and emitted (lastSelfMintingBlock). This advances continuously, unaffected by pause state."},"functionSelector":"3067cb4c","id":13919,"implemented":true,"kind":"function","modifiers":[],"name":"getTargetIssuancePerBlock","nameLocation":"62134:25:44","nodeType":"FunctionDefinition","overrides":{"id":13888,"nodeType":"OverrideSpecifier","overrides":[],"src":"62190:8:44"},"parameters":{"id":13887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13886,"mutability":"mutable","name":"target","nameLocation":"62168:6:44","nodeType":"VariableDeclaration","scope":13919,"src":"62160:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13885,"name":"address","nodeType":"ElementaryTypeName","src":"62160:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62159:16:44"},"returnParameters":{"id":13892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13919,"src":"62208:29:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TargetIssuancePerBlock_$1583_memory_ptr","typeString":"struct TargetIssuancePerBlock"},"typeName":{"id":13890,"nodeType":"UserDefinedTypeName","pathNode":{"id":13889,"name":"TargetIssuancePerBlock","nameLocations":["62208:22:44"],"nodeType":"IdentifierPath","referencedDeclaration":1583,"src":"62208:22:44"},"referencedDeclaration":1583,"src":"62208:22:44","typeDescriptions":{"typeIdentifier":"t_struct$_TargetIssuancePerBlock_$1583_storage_ptr","typeString":"struct TargetIssuancePerBlock"}},"visibility":"internal"}],"src":"62207:31:44"},"scope":13968,"src":"62125:614:44","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[1530],"body":{"id":13966,"nodeType":"Block","src":"63364:675:44","statements":[{"assignments":[13929],"declarations":[{"constant":false,"id":13929,"mutability":"mutable","name":"$","nameLocation":"63404:1:44","nodeType":"VariableDeclaration","scope":13966,"src":"63374:31:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"},"typeName":{"id":13928,"nodeType":"UserDefinedTypeName","pathNode":{"id":13927,"name":"IssuanceAllocatorData","nameLocations":["63374:21:44"],"nodeType":"IdentifierPath","referencedDeclaration":11802,"src":"63374:21:44"},"referencedDeclaration":11802,"src":"63374:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData"}},"visibility":"internal"}],"id":13932,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":13930,"name":"_getIssuanceAllocatorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"63408:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_IssuanceAllocatorData_$11802_storage_ptr_$","typeString":"function () pure returns (struct IssuanceAllocator.IssuanceAllocatorData storage pointer)"}},"id":13931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63408:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"63374:64:44"},{"expression":{"id":13947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13933,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"63762:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"id":13935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"63773:19:44","memberName":"totalAllocationRate","nodeType":"MemberAccess","referencedDeclaration":1586,"src":"63762:30:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13936,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"63795:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"63797:16:44","memberName":"issuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":11782,"src":"63795:18:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"baseExpression":{"expression":{"id":13938,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"63816:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"63818:17:44","memberName":"allocationTargets","nodeType":"MemberAccess","referencedDeclaration":11793,"src":"63816:19:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AllocationTarget_$1599_storage_$","typeString":"mapping(address => struct AllocationTarget storage ref)"}},"id":13944,"indexExpression":{"arguments":[{"hexValue":"30","id":13942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"63844:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"63836:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13940,"name":"address","nodeType":"ElementaryTypeName","src":"63836:7:44","typeDescriptions":{}}},"id":13943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63836:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"63816:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_AllocationTarget_$1599_storage","typeString":"struct AllocationTarget storage ref"}},"id":13945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"63848:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1594,"src":"63816:52:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"63795:73:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"63762:106:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13948,"nodeType":"ExpressionStatement","src":"63762:106:44"},{"expression":{"id":13954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13949,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"63878:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"id":13951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"63889:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1590,"src":"63878:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13952,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"63907:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_IssuanceAllocatorData_$11802_storage_ptr","typeString":"struct IssuanceAllocator.IssuanceAllocatorData storage pointer"}},"id":13953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"63909:20:44","memberName":"totalSelfMintingRate","nodeType":"MemberAccess","referencedDeclaration":11798,"src":"63907:22:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"63878:51:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13955,"nodeType":"ExpressionStatement","src":"63878:51:44"},{"expression":{"id":13964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":13956,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"63939:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"id":13958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"63950:20:44","memberName":"allocatorMintingRate","nodeType":"MemberAccess","referencedDeclaration":1588,"src":"63939:31:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13959,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"63973:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"id":13960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"63984:19:44","memberName":"totalAllocationRate","nodeType":"MemberAccess","referencedDeclaration":1586,"src":"63973:30:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":13961,"name":"allocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"64006:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation memory"}},"id":13962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"64017:15:44","memberName":"selfMintingRate","nodeType":"MemberAccess","referencedDeclaration":1590,"src":"64006:26:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"63973:59:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"63939:93:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13965,"nodeType":"ExpressionStatement","src":"63939:93:44"}]},"documentation":{"id":13920,"nodeType":"StructuredDocumentation","src":"62745:522:44","text":" @inheritdoc IIssuanceAllocationStatus\n @dev For reporting purposes, if the default target is address(0), its allocation\n @dev is treated as \"unallocated\" since address(0) cannot receive minting.\n @dev When default is address(0): returns actual allocated amounts (may be less than issuancePerBlock)\n @dev When default is a real address: returns issuancePerBlock\n @dev Note: Internally, the contract always maintains 100% allocation invariant, even when default is address(0)"},"functionSelector":"15d3b5d8","id":13967,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalAllocation","nameLocation":"63281:18:44","nodeType":"FunctionDefinition","overrides":{"id":13922,"nodeType":"OverrideSpecifier","overrides":[],"src":"63316:8:44"},"parameters":{"id":13921,"nodeType":"ParameterList","parameters":[],"src":"63299:2:44"},"returnParameters":{"id":13926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13925,"mutability":"mutable","name":"allocation","nameLocation":"63352:10:44","nodeType":"VariableDeclaration","scope":13967,"src":"63334:28:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_memory_ptr","typeString":"struct Allocation"},"typeName":{"id":13924,"nodeType":"UserDefinedTypeName","pathNode":{"id":13923,"name":"Allocation","nameLocations":["63334:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":1591,"src":"63334:10:44"},"referencedDeclaration":1591,"src":"63334:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Allocation_$1591_storage_ptr","typeString":"struct Allocation"}},"visibility":"internal"}],"src":"63333:30:44"},"scope":13968,"src":"63272:767:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":13969,"src":"9256:54785:44","usedErrors":[2708,2711,3044,3047,3215,3218,4467,11818,11825,11834,11839,11848,11853,11858,14018,14021],"usedEvents":[2716,3036,3041,3227,3236,3245,11869,11878,11885,11892,11903,11916,11927,11936,11945]}],"src":"46:63996:44"},"id":44},"project/contracts/common/BaseUpgradeable.sol":{"ast":{"absolutePath":"project/contracts/common/BaseUpgradeable.sol","exportedSymbols":{"AccessControlEnumerableUpgradeable":[2691],"BaseUpgradeable":[14164],"IGraphToken":[14180],"IPausableControl":[1661],"Initializable":[2959],"PausableUpgradeable":[3165]},"id":14165,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":13970,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"46:23:45"},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":13972,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14165,"sourceUnit":2960,"src":"71:98:45","symbolAliases":[{"foreign":{"id":13971,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2959,"src":"80:13:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","id":13974,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14165,"sourceUnit":3166,"src":"170:104:45","symbolAliases":[{"foreign":{"id":13973,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3165,"src":"179:19:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts-upgradeable@5.4.0/access/extensions/AccessControlEnumerableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/extensions/AccessControlEnumerableUpgradeable.sol","id":13976,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14165,"sourceUnit":2692,"src":"275:146:45","symbolAliases":[{"foreign":{"id":13975,"name":"AccessControlEnumerableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2691,"src":"284:34:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"project/contracts/common/IGraphToken.sol","file":"./IGraphToken.sol","id":13978,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14165,"sourceUnit":14181,"src":"422:48:45","symbolAliases":[{"foreign":{"id":13977,"name":"IGraphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14180,"src":"431:11:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/common/IPausableControl.sol","file":"@graphprotocol/interfaces/contracts/issuance/common/IPausableControl.sol","id":13980,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14165,"sourceUnit":1662,"src":"471:108:45","symbolAliases":[{"foreign":{"id":13979,"name":"IPausableControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"480:16:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13982,"name":"Initializable","nameLocations":["1446:13:45"],"nodeType":"IdentifierPath","referencedDeclaration":2959,"src":"1446:13:45"},"id":13983,"nodeType":"InheritanceSpecifier","src":"1446:13:45"},{"baseName":{"id":13984,"name":"AccessControlEnumerableUpgradeable","nameLocations":["1465:34:45"],"nodeType":"IdentifierPath","referencedDeclaration":2691,"src":"1465:34:45"},"id":13985,"nodeType":"InheritanceSpecifier","src":"1465:34:45"},{"baseName":{"id":13986,"name":"PausableUpgradeable","nameLocations":["1505:19:45"],"nodeType":"IdentifierPath","referencedDeclaration":3165,"src":"1505:19:45"},"id":13987,"nodeType":"InheritanceSpecifier","src":"1505:19:45"},{"baseName":{"id":13988,"name":"IPausableControl","nameLocations":["1530:16:45"],"nodeType":"IdentifierPath","referencedDeclaration":1661,"src":"1530:16:45"},"id":13989,"nodeType":"InheritanceSpecifier","src":"1530:16:45"}],"canonicalName":"BaseUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":13981,"nodeType":"StructuredDocumentation","src":"581:823:45","text":" @title BaseUpgradeable\n @author Edge & Node\n @notice A base contract that provides role-based access control and pausability.\n @dev This contract combines OpenZeppelin's AccessControlEnumerable and Pausable\n to provide a standardized way to manage access control and pausing functionality.\n Using AccessControlEnumerable (rather than base AccessControl) enables on-chain\n enumeration of role members via getRoleMemberCount() and getRoleMember(), which\n is useful for deployment verification and auditing.\n It uses ERC-7201 namespaced storage pattern for better storage isolation.\n This contract is abstract and meant to be inherited by other contracts.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any bugs. We might have an active bug bounty program."},"fullyImplemented":true,"id":14164,"linearizedBaseContracts":[14164,1661,3165,2691,2465,3205,5012,3314,3288,3005,2959],"name":"BaseUpgradeable","nameLocation":"1423:15:45","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":13990,"nodeType":"StructuredDocumentation","src":"1577:320:45","text":"@notice One million - used as the denominator for values provided as Parts Per Million (PPM)\n @dev This constant represents 1,000,000 and serves as the denominator when working with\n PPM values. For example, 50% would be represented as 500,000 PPM, calculated as\n (500,000 / MILLION) = 0.5 = 50%"},"functionSelector":"32bc934c","id":13993,"mutability":"constant","name":"MILLION","nameLocation":"1926:7:45","nodeType":"VariableDeclaration","scope":14164,"src":"1902:43:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13991,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":13992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1936:9:45","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"public"},{"constant":true,"documentation":{"id":13994,"nodeType":"StructuredDocumentation","src":"1981:373:45","text":" @notice Role identifier for governor accounts\n @dev Governors have the highest level of access and can:\n - Grant and revoke roles within the established hierarchy\n - Perform administrative functions and system configuration\n - Set critical parameters and upgrade contracts\n Admin of: GOVERNOR_ROLE, PAUSE_ROLE, OPERATOR_ROLE"},"functionSelector":"ccc57490","id":13999,"mutability":"constant","name":"GOVERNOR_ROLE","nameLocation":"2383:13:45","nodeType":"VariableDeclaration","scope":14164,"src":"2359:66:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2359:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"474f5645524e4f525f524f4c45","id":13997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2409:15:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55","typeString":"literal_string \"GOVERNOR_ROLE\""},"value":"GOVERNOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55","typeString":"literal_string \"GOVERNOR_ROLE\""}],"id":13996,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2399:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2399:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"documentation":{"id":14000,"nodeType":"StructuredDocumentation","src":"2432:440:45","text":" @notice Role identifier for pause accounts\n @dev Pause role holders can:\n - Pause and unpause contract operations for emergency situations\n Typically granted to automated monitoring systems or emergency responders.\n Pausing is intended for quick response to potential threats, and giving time for investigation and resolution (potentially with governance intervention).\n Admin: GOVERNOR_ROLE"},"functionSelector":"389ed267","id":14005,"mutability":"constant","name":"PAUSE_ROLE","nameLocation":"2901:10:45","nodeType":"VariableDeclaration","scope":14164,"src":"2877:60:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50415553455f524f4c45","id":14003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2924:12:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d","typeString":"literal_string \"PAUSE_ROLE\""},"value":"PAUSE_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_139c2898040ef16910dc9f44dc697df79363da767d8bc92f2e310312b816e46d","typeString":"literal_string \"PAUSE_ROLE\""}],"id":14002,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2914:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2914:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"documentation":{"id":14006,"nodeType":"StructuredDocumentation","src":"2944:256:45","text":" @notice Role identifier for operator accounts\n @dev Operators can:\n - Perform operational tasks as defined by inheriting contracts\n - Manage roles that are designated as operator-administered\n Admin: GOVERNOR_ROLE"},"functionSelector":"f5b541a6","id":14011,"mutability":"constant","name":"OPERATOR_ROLE","nameLocation":"3229:13:45","nodeType":"VariableDeclaration","scope":14164,"src":"3205:66:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4f50455241544f525f524f4c45","id":14009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3255:15:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929","typeString":"literal_string \"OPERATOR_ROLE\""},"value":"OPERATOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929","typeString":"literal_string \"OPERATOR_ROLE\""}],"id":14008,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3245:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3245:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":14012,"nodeType":"StructuredDocumentation","src":"3312:102:45","text":"@notice The Graph Token contract\n @custom:oz-upgrades-unsafe-allow state-variable-immutable"},"id":14015,"mutability":"immutable","name":"GRAPH_TOKEN","nameLocation":"3450:11:45","nodeType":"VariableDeclaration","scope":14164,"src":"3419:42:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"},"typeName":{"id":14014,"nodeType":"UserDefinedTypeName","pathNode":{"id":14013,"name":"IGraphToken","nameLocations":["3419:11:45"],"nodeType":"IdentifierPath","referencedDeclaration":14180,"src":"3419:11:45"},"referencedDeclaration":14180,"src":"3419:11:45","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"visibility":"internal"},{"documentation":{"id":14016,"nodeType":"StructuredDocumentation","src":"3496:77:45","text":"@notice Thrown when attempting to set the Graph Token to the zero address"},"errorSelector":"69e4eeb3","id":14018,"name":"GraphTokenCannotBeZeroAddress","nameLocation":"3584:29:45","nodeType":"ErrorDefinition","parameters":{"id":14017,"nodeType":"ParameterList","parameters":[],"src":"3613:2:45"},"src":"3578:38:45"},{"documentation":{"id":14019,"nodeType":"StructuredDocumentation","src":"3622:74:45","text":"@notice Thrown when attempting to set the governor to the zero address"},"errorSelector":"395d0535","id":14021,"name":"GovernorCannotBeZeroAddress","nameLocation":"3707:27:45","nodeType":"ErrorDefinition","parameters":{"id":14020,"nodeType":"ParameterList","parameters":[],"src":"3734:2:45"},"src":"3701:36:45"},{"body":{"id":14047,"nodeType":"Block","src":"4181:162:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14028,"name":"graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14024,"src":"4199:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":14031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4221:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4213:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14029,"name":"address","nodeType":"ElementaryTypeName","src":"4213:7:45","typeDescriptions":{}}},"id":14032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4213:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4199:24:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":14034,"name":"GraphTokenCannotBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14018,"src":"4225:29:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4225:31:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":14027,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4191:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":14036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:66:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14037,"nodeType":"ExpressionStatement","src":"4191:66:45"},{"expression":{"id":14042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14038,"name":"GRAPH_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"4267:11:45","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14040,"name":"graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14024,"src":"4293:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14039,"name":"IGraphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14180,"src":"4281:11:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGraphToken_$14180_$","typeString":"type(contract IGraphToken)"}},"id":14041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4281:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"src":"4267:37:45","typeDescriptions":{"typeIdentifier":"t_contract$_IGraphToken_$14180","typeString":"contract IGraphToken"}},"id":14043,"nodeType":"ExpressionStatement","src":"4267:37:45"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14044,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2913,"src":"4314:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4314:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14046,"nodeType":"ExpressionStatement","src":"4314:22:45"}]},"documentation":{"id":14022,"nodeType":"StructuredDocumentation","src":"3769:375:45","text":" @notice Constructor for the BaseUpgradeable contract\n @dev This contract is upgradeable, but we use the constructor to set immutable variables\n and disable initializers to prevent the implementation contract from being initialized.\n @param graphToken Address of the Graph Token contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":14048,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14024,"mutability":"mutable","name":"graphToken","nameLocation":"4169:10:45","nodeType":"VariableDeclaration","scope":14048,"src":"4161:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14023,"name":"address","nodeType":"ElementaryTypeName","src":"4161:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4160:20:45"},"returnParameters":{"id":14026,"nodeType":"ParameterList","parameters":[],"src":"4181:0:45"},"scope":14164,"src":"4149:194:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14064,"nodeType":"Block","src":"4800:129:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14054,"name":"__AccessControlEnumerable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"4810:30:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14056,"nodeType":"ExpressionStatement","src":"4810:32:45"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14057,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"4852:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4852:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14059,"nodeType":"ExpressionStatement","src":"4852:17:45"},{"expression":{"arguments":[{"id":14061,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14051,"src":"4913:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14060,"name":"__BaseUpgradeable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"4880:32:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":14062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14063,"nodeType":"ExpressionStatement","src":"4880:42:45"}]},"documentation":{"id":14049,"nodeType":"StructuredDocumentation","src":"4489:247:45","text":" @notice Internal function to initialize the BaseUpgradeable contract\n @dev This function is used by child contracts to initialize the BaseUpgradeable contract\n @param governor Address that will have the GOVERNOR_ROLE"},"id":14065,"implemented":true,"kind":"function","modifiers":[],"name":"__BaseUpgradeable_init","nameLocation":"4750:22:45","nodeType":"FunctionDefinition","parameters":{"id":14052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14051,"mutability":"mutable","name":"governor","nameLocation":"4781:8:45","nodeType":"VariableDeclaration","scope":14065,"src":"4773:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14050,"name":"address","nodeType":"ElementaryTypeName","src":"4773:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4772:18:45"},"returnParameters":{"id":14053,"nodeType":"ParameterList","parameters":[],"src":"4800:0:45"},"scope":14164,"src":"4741:188:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14102,"nodeType":"Block","src":"5297:491:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14072,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14068,"src":"5377:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":14075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14073,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:45","typeDescriptions":{}}},"id":14076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5377:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":14078,"name":"GovernorCannotBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14021,"src":"5401:27:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5401:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":14071,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5369:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":14080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5369:62:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14081,"nodeType":"ExpressionStatement","src":"5369:62:45"},{"expression":{"arguments":[{"id":14083,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5564:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14084,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5579:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14082,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"5550:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5550:43:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14086,"nodeType":"ExpressionStatement","src":"5550:43:45"},{"expression":{"arguments":[{"id":14088,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14005,"src":"5617:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14089,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5629:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14087,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"5603:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5603:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14091,"nodeType":"ExpressionStatement","src":"5603:40:45"},{"expression":{"arguments":[{"id":14093,"name":"OPERATOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14011,"src":"5667:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14094,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5682:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14092,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"5653:13:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":14095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:43:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14096,"nodeType":"ExpressionStatement","src":"5653:43:45"},{"expression":{"arguments":[{"id":14098,"name":"GOVERNOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13999,"src":"5757:13:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14099,"name":"governor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14068,"src":"5772:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":14097,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[2650],"referencedDeclaration":2650,"src":"5746:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:35:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14101,"nodeType":"ExpressionStatement","src":"5746:35:45"}]},"documentation":{"id":14066,"nodeType":"StructuredDocumentation","src":"4935:230:45","text":" @notice Internal unchained initialization function for BaseUpgradeable\n @dev This function sets up the governor role and role admin hierarchy\n @param governor Address that will have the GOVERNOR_ROLE"},"id":14103,"implemented":true,"kind":"function","modifiers":[],"name":"__BaseUpgradeable_init_unchained","nameLocation":"5237:32:45","nodeType":"FunctionDefinition","parameters":{"id":14069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14068,"mutability":"mutable","name":"governor","nameLocation":"5278:8:45","nodeType":"VariableDeclaration","scope":14103,"src":"5270:16:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14067,"name":"address","nodeType":"ElementaryTypeName","src":"5270:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5269:18:45"},"returnParameters":{"id":14070,"nodeType":"ParameterList","parameters":[],"src":"5297:0:45"},"scope":14164,"src":"5228:560:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1650],"body":{"id":14114,"nodeType":"Block","src":"5935:25:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14111,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3140,"src":"5945:6:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:8:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14113,"nodeType":"ExpressionStatement","src":"5945:8:45"}]},"documentation":{"id":14104,"nodeType":"StructuredDocumentation","src":"5827:47:45","text":" @inheritdoc IPausableControl"},"functionSelector":"8456cb59","id":14115,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14108,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14005,"src":"5923:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14109,"kind":"modifierInvocation","modifierName":{"id":14107,"name":"onlyRole","nameLocations":["5914:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"5914:8:45"},"nodeType":"ModifierInvocation","src":"5914:20:45"}],"name":"pause","nameLocation":"5888:5:45","nodeType":"FunctionDefinition","overrides":{"id":14106,"nodeType":"OverrideSpecifier","overrides":[],"src":"5905:8:45"},"parameters":{"id":14105,"nodeType":"ParameterList","parameters":[],"src":"5893:2:45"},"returnParameters":{"id":14110,"nodeType":"ParameterList","parameters":[],"src":"5935:0:45"},"scope":14164,"src":"5879:81:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1654],"body":{"id":14126,"nodeType":"Block","src":"6076:27:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14123,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3164,"src":"6086:8:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":14124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6086:10:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14125,"nodeType":"ExpressionStatement","src":"6086:10:45"}]},"documentation":{"id":14116,"nodeType":"StructuredDocumentation","src":"5966:47:45","text":" @inheritdoc IPausableControl"},"functionSelector":"3f4ba83a","id":14127,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14120,"name":"PAUSE_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14005,"src":"6064:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14121,"kind":"modifierInvocation","modifierName":{"id":14119,"name":"onlyRole","nameLocations":["6055:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":2160,"src":"6055:8:45"},"nodeType":"ModifierInvocation","src":"6055:20:45"}],"name":"unpause","nameLocation":"6027:7:45","nodeType":"FunctionDefinition","overrides":{"id":14118,"nodeType":"OverrideSpecifier","overrides":[],"src":"6046:8:45"},"parameters":{"id":14117,"nodeType":"ParameterList","parameters":[],"src":"6034:2:45"},"returnParameters":{"id":14122,"nodeType":"ParameterList","parameters":[],"src":"6076:0:45"},"scope":14164,"src":"6018:85:45","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1660,3091],"body":{"id":14140,"nodeType":"Block","src":"6262:38:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14136,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6279:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseUpgradeable_$14164_$","typeString":"type(contract super BaseUpgradeable)"}},"id":14137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6285:6:45","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":3091,"src":"6279:12:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":14138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6279:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14135,"id":14139,"nodeType":"Return","src":"6272:21:45"}]},"documentation":{"id":14128,"nodeType":"StructuredDocumentation","src":"6109:47:45","text":" @inheritdoc IPausableControl"},"functionSelector":"5c975abb","id":14141,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"6170:6:45","nodeType":"FunctionDefinition","overrides":{"id":14132,"nodeType":"OverrideSpecifier","overrides":[{"id":14130,"name":"PausableUpgradeable","nameLocations":["6208:19:45"],"nodeType":"IdentifierPath","referencedDeclaration":3165,"src":"6208:19:45"},{"id":14131,"name":"IPausableControl","nameLocations":["6229:16:45"],"nodeType":"IdentifierPath","referencedDeclaration":1661,"src":"6229:16:45"}],"src":"6199:47:45"},"parameters":{"id":14129,"nodeType":"ParameterList","parameters":[],"src":"6176:2:45"},"returnParameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14141,"src":"6256:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14133,"name":"bool","nodeType":"ElementaryTypeName","src":"6256:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6255:6:45"},"scope":14164,"src":"6161:139:45","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2540],"body":{"id":14162,"nodeType":"Block","src":"6670:113:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14150,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14144,"src":"6687:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14152,"name":"IPausableControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"6707:16:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPausableControl_$1661_$","typeString":"type(contract IPausableControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPausableControl_$1661_$","typeString":"type(contract IPausableControl)"}],"id":14151,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6702:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6702:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPausableControl_$1661","typeString":"type(contract IPausableControl)"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6725:11:45","memberName":"interfaceId","nodeType":"MemberAccess","src":"6702:34:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6687:49:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14158,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14144,"src":"6764:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14156,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6740:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseUpgradeable_$14164_$","typeString":"type(contract super BaseUpgradeable)"}},"id":14157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6746:17:45","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2540,"src":"6740:23:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6740:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6687:89:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14149,"id":14161,"nodeType":"Return","src":"6680:96:45"}]},"documentation":{"id":14142,"nodeType":"StructuredDocumentation","src":"6306:268:45","text":" @notice Check if this contract supports a given interface\n @dev Adds support for IPausableControl interface\n @param interfaceId The interface identifier to check\n @return True if the contract supports the interface, false otherwise"},"functionSelector":"01ffc9a7","id":14163,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6588:17:45","nodeType":"FunctionDefinition","overrides":{"id":14146,"nodeType":"OverrideSpecifier","overrides":[],"src":"6646:8:45"},"parameters":{"id":14145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14144,"mutability":"mutable","name":"interfaceId","nameLocation":"6613:11:45","nodeType":"VariableDeclaration","scope":14163,"src":"6606:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14143,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6606:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6605:20:45"},"returnParameters":{"id":14149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14163,"src":"6664:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14147,"name":"bool","nodeType":"ElementaryTypeName","src":"6664:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6663:6:45"},"scope":14164,"src":"6579:204:45","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14165,"src":"1405:5380:45","usedErrors":[2708,2711,3044,3047,3215,3218,14018,14021],"usedEvents":[2716,3036,3041,3227,3236,3245]}],"src":"46:6740:45"},"id":45},"project/contracts/common/IGraphToken.sol":{"ast":{"absolutePath":"project/contracts/common/IGraphToken.sol","exportedSymbols":{"IERC20":[3392],"IGraphToken":[14180]},"id":14181,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":14166,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"46:23:46"},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":14168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14181,"sourceUnit":3393,"src":"71:72:46","symbolAliases":[{"foreign":{"id":14167,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3392,"src":"80:6:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14170,"name":"IERC20","nameLocations":["395:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":3392,"src":"395:6:46"},"id":14171,"nodeType":"InheritanceSpecifier","src":"395:6:46"}],"canonicalName":"IGraphToken","contractDependencies":[],"contractKind":"interface","documentation":{"id":14169,"nodeType":"StructuredDocumentation","src":"145:224:46","text":" @title IGraphToken\n @author Edge & Node\n @notice Minimal interface for the Graph Token contract used by issuance contracts\n @dev Extends IERC20 with mint capability. This interface is compatible with OZ 5.x."},"fullyImplemented":false,"id":14180,"linearizedBaseContracts":[14180,3392],"name":"IGraphToken","nameLocation":"380:11:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":14172,"nodeType":"StructuredDocumentation","src":"408:218:46","text":" @notice Mints new tokens to a specified account\n @dev Only callable by accounts with minter role\n @param to The account to mint tokens to\n @param amount The amount of tokens to mint"},"functionSelector":"40c10f19","id":14179,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"640:4:46","nodeType":"FunctionDefinition","parameters":{"id":14177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14174,"mutability":"mutable","name":"to","nameLocation":"653:2:46","nodeType":"VariableDeclaration","scope":14179,"src":"645:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14173,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14176,"mutability":"mutable","name":"amount","nameLocation":"665:6:46","nodeType":"VariableDeclaration","scope":14179,"src":"657:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14175,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"644:28:46"},"returnParameters":{"id":14178,"nodeType":"ParameterList","parameters":[],"src":"681:0:46"},"scope":14180,"src":"631:51:46","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14181,"src":"370:314:46","usedErrors":[],"usedEvents":[3326,3335]}],"src":"46:639:46"},"id":46},"project/contracts/test/allocate/IssuanceAllocatorTestHarness.sol":{"ast":{"absolutePath":"project/contracts/test/allocate/IssuanceAllocatorTestHarness.sol","exportedSymbols":{"IssuanceAllocator":[13968],"IssuanceAllocatorTestHarness":[14235]},"id":14236,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":14182,"literals":["solidity","0.8",".33"],"nodeType":"PragmaDirective","src":"46:23:47"},{"absolutePath":"project/contracts/allocate/IssuanceAllocator.sol","file":"../../allocate/IssuanceAllocator.sol","id":14184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14236,"sourceUnit":13969,"src":"71:73:47","symbolAliases":[{"foreign":{"id":14183,"name":"IssuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13968,"src":"80:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14186,"name":"IssuanceAllocator","nameLocations":["436:17:47"],"nodeType":"IdentifierPath","referencedDeclaration":13968,"src":"436:17:47"},"id":14187,"nodeType":"InheritanceSpecifier","src":"436:17:47"}],"canonicalName":"IssuanceAllocatorTestHarness","contractDependencies":[],"contractKind":"contract","documentation":{"id":14185,"nodeType":"StructuredDocumentation","src":"146:248:47","text":" @title IssuanceAllocatorTestHarness\n @author Edge & Node\n @notice Test harness to expose internal functions for white-box testing\n @dev This contract allows direct testing of internal distribution functions to achieve 100% coverage"},"fullyImplemented":true,"id":14235,"linearizedBaseContracts":[14235,13968,1485,1565,1469,1507,4523,14164,1661,3165,2691,2465,3205,5012,3314,3288,3005,2959],"name":"IssuanceAllocatorTestHarness","nameLocation":"404:28:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":14196,"nodeType":"Block","src":"702:2:47","statements":[]},"documentation":{"id":14188,"nodeType":"StructuredDocumentation","src":"460:173:47","text":" @notice Constructor for the test harness\n @param _graphToken Address of the Graph Token contract\n @custom:oz-upgrades-unsafe-allow constructor"},"id":14197,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":14193,"name":"_graphToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14190,"src":"689:11:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":14194,"kind":"baseConstructorSpecifier","modifierName":{"id":14192,"name":"IssuanceAllocator","nameLocations":["671:17:47"],"nodeType":"IdentifierPath","referencedDeclaration":13968,"src":"671:17:47"},"nodeType":"ModifierInvocation","src":"671:30:47"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14190,"mutability":"mutable","name":"_graphToken","nameLocation":"658:11:47","nodeType":"VariableDeclaration","scope":14197,"src":"650:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14189,"name":"address","nodeType":"ElementaryTypeName","src":"650:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"649:21:47"},"returnParameters":{"id":14195,"nodeType":"ParameterList","parameters":[],"src":"702:0:47"},"scope":14235,"src":"638:66:47","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14213,"nodeType":"Block","src":"1217:90:47","statements":[{"expression":{"arguments":[{"id":14208,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"1260:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14209,"name":"allocatedRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"1271:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14210,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"1286:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14207,"name":"_distributePendingProportionally","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12827,"src":"1227:32:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":14211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:73:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14212,"nodeType":"ExpressionStatement","src":"1227:73:47"}]},"documentation":{"id":14198,"nodeType":"StructuredDocumentation","src":"710:350:47","text":" @notice Exposes _distributePendingProportionally for testing\n @dev Allows testing of defensive checks and edge cases\n @param available Total available allocator-minting budget for the period\n @param allocatedRate Total rate allocated to non-default targets\n @param toBlockNumber Block number distributing to"},"functionSelector":"e038978e","id":14214,"implemented":true,"kind":"function","modifiers":[],"name":"exposedDistributePendingProportionally","nameLocation":"1074:38:47","nodeType":"FunctionDefinition","parameters":{"id":14205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14200,"mutability":"mutable","name":"available","nameLocation":"1130:9:47","nodeType":"VariableDeclaration","scope":14214,"src":"1122:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14202,"mutability":"mutable","name":"allocatedRate","nameLocation":"1157:13:47","nodeType":"VariableDeclaration","scope":14214,"src":"1149:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1149:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14204,"mutability":"mutable","name":"toBlockNumber","nameLocation":"1188:13:47","nodeType":"VariableDeclaration","scope":14214,"src":"1180:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1180:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1112:95:47"},"returnParameters":{"id":14206,"nodeType":"ParameterList","parameters":[],"src":"1217:0:47"},"scope":14235,"src":"1065:242:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14233,"nodeType":"Block","src":"1927:97:47","statements":[{"expression":{"arguments":[{"id":14227,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14217,"src":"1968:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14228,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14219,"src":"1976:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14229,"name":"allocatedTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14221,"src":"1987:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14230,"name":"toBlockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14223,"src":"2003:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14226,"name":"_distributePendingWithFullRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12735,"src":"1937:30:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":14231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:80:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14232,"nodeType":"ExpressionStatement","src":"1937:80:47"}]},"documentation":{"id":14215,"nodeType":"StructuredDocumentation","src":"1313:434:47","text":" @notice Exposes _distributePendingWithFullRate for testing\n @dev Allows testing of edge cases in full rate distribution\n @param blocks Number of blocks in the distribution period\n @param available Total available allocator-minting budget for the period\n @param allocatedTotal Total amount allocated to non-default targets at full rate\n @param toBlockNumber Block number distributing to"},"functionSelector":"d48beb1b","id":14234,"implemented":true,"kind":"function","modifiers":[],"name":"exposedDistributePendingWithFullRate","nameLocation":"1761:36:47","nodeType":"FunctionDefinition","parameters":{"id":14224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14217,"mutability":"mutable","name":"blocks","nameLocation":"1815:6:47","nodeType":"VariableDeclaration","scope":14234,"src":"1807:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1807:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14219,"mutability":"mutable","name":"available","nameLocation":"1839:9:47","nodeType":"VariableDeclaration","scope":14234,"src":"1831:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1831:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14221,"mutability":"mutable","name":"allocatedTotal","nameLocation":"1866:14:47","nodeType":"VariableDeclaration","scope":14234,"src":"1858:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1858:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14223,"mutability":"mutable","name":"toBlockNumber","nameLocation":"1898:13:47","nodeType":"VariableDeclaration","scope":14234,"src":"1890:21:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1890:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1797:120:47"},"returnParameters":{"id":14225,"nodeType":"ParameterList","parameters":[],"src":"1927:0:47"},"scope":14235,"src":"1752:272:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14236,"src":"395:1631:47","usedErrors":[2708,2711,3044,3047,3215,3218,4467,11818,11825,11834,11839,11848,11853,11858,14018,14021],"usedEvents":[2716,3036,3041,3227,3236,3245,11869,11878,11885,11892,11903,11916,11927,11936,11945]}],"src":"46:1981:47"},"id":47},"project/contracts/test/allocate/MockNotificationTracker.sol":{"ast":{"absolutePath":"project/contracts/test/allocate/MockNotificationTracker.sol","exportedSymbols":{"ERC165":[5000],"IIssuanceTarget":[1631],"MockNotificationTracker":[14323]},"id":14324,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14237,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:48"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":14239,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14324,"sourceUnit":1632,"src":"58:108:48","symbolAliases":[{"foreign":{"id":14238,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"67:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":14241,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14324,"sourceUnit":5001,"src":"167:80:48","symbolAliases":[{"foreign":{"id":14240,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5000,"src":"176:6:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14243,"name":"IIssuanceTarget","nameLocations":["482:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"482:15:48"},"id":14244,"nodeType":"InheritanceSpecifier","src":"482:15:48"},{"baseName":{"id":14245,"name":"ERC165","nameLocations":["499:6:48"],"nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"499:6:48"},"id":14246,"nodeType":"InheritanceSpecifier","src":"499:6:48"}],"canonicalName":"MockNotificationTracker","contractDependencies":[],"contractKind":"contract","documentation":{"id":14242,"nodeType":"StructuredDocumentation","src":"249:196:48","text":" @title MockNotificationTracker\n @author Edge & Node\n @notice A mock contract that tracks notification calls for testing\n @dev Records when beforeIssuanceAllocationChange is called"},"fullyImplemented":true,"id":14323,"linearizedBaseContracts":[14323,5000,5012,1631],"name":"MockNotificationTracker","nameLocation":"455:23:48","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":14247,"nodeType":"StructuredDocumentation","src":"512:58:48","text":"@notice Number of times the contract has been notified"},"functionSelector":"71342f0c","id":14249,"mutability":"mutable","name":"notificationCount","nameLocation":"590:17:48","nodeType":"VariableDeclaration","scope":14323,"src":"575:32:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14248,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":14250,"nodeType":"StructuredDocumentation","src":"614:58:48","text":"@notice Block number of the last notification received"},"functionSelector":"6251b205","id":14252,"mutability":"mutable","name":"lastNotificationBlock","nameLocation":"692:21:48","nodeType":"VariableDeclaration","scope":14323,"src":"677:36:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14251,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":14253,"nodeType":"StructuredDocumentation","src":"720:200:48","text":"@notice Emitted when a notification is received\n @param blockNumber The block number when notification was received\n @param count The total notification count after this notification"},"eventSelector":"d30d8d39ed9738fcbc30cabdfaaed97ab3319ec0f3ae4488a9b3e408a507b1c6","id":14259,"name":"NotificationReceived","nameLocation":"931:20:48","nodeType":"EventDefinition","parameters":{"id":14258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14255,"indexed":true,"mutability":"mutable","name":"blockNumber","nameLocation":"968:11:48","nodeType":"VariableDeclaration","scope":14259,"src":"952:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14254,"name":"uint256","nodeType":"ElementaryTypeName","src":"952:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14257,"indexed":true,"mutability":"mutable","name":"count","nameLocation":"997:5:48","nodeType":"VariableDeclaration","scope":14259,"src":"981:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14256,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"951:52:48"},"src":"925:79:48"},{"baseFunctions":[1624],"body":{"id":14278,"nodeType":"Block","src":"1149:150:48","statements":[{"expression":{"id":14265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1159:19:48","subExpression":{"id":14264,"name":"notificationCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14249,"src":"1161:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14266,"nodeType":"ExpressionStatement","src":"1159:19:48"},{"expression":{"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14267,"name":"lastNotificationBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14252,"src":"1188:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":14268,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1212:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1218:6:48","memberName":"number","nodeType":"MemberAccess","src":"1212:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1188:36:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14271,"nodeType":"ExpressionStatement","src":"1188:36:48"},{"eventCall":{"arguments":[{"expression":{"id":14273,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1260:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1266:6:48","memberName":"number","nodeType":"MemberAccess","src":"1260:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14275,"name":"notificationCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14249,"src":"1274:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14272,"name":"NotificationReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14259,"src":"1239:20:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":14276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:53:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14277,"nodeType":"EmitStatement","src":"1234:58:48"}]},"documentation":{"id":14260,"nodeType":"StructuredDocumentation","src":"1053:31:48","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":14279,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"1098:30:48","nodeType":"FunctionDefinition","overrides":{"id":14262,"nodeType":"OverrideSpecifier","overrides":[],"src":"1140:8:48"},"parameters":{"id":14261,"nodeType":"ParameterList","parameters":[],"src":"1128:2:48"},"returnParameters":{"id":14263,"nodeType":"ParameterList","parameters":[],"src":"1149:0:48"},"scope":14323,"src":"1089:210:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":14286,"nodeType":"Block","src":"1422:2:48","statements":[]},"documentation":{"id":14280,"nodeType":"StructuredDocumentation","src":"1305:31:48","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"931c0ac1","id":14287,"implemented":true,"kind":"function","modifiers":[],"name":"setIssuanceAllocator","nameLocation":"1350:20:48","nodeType":"FunctionDefinition","overrides":{"id":14284,"nodeType":"OverrideSpecifier","overrides":[],"src":"1413:8:48"},"parameters":{"id":14283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"_issuanceAllocator","nameLocation":"1379:18:48","nodeType":"VariableDeclaration","scope":14287,"src":"1371:26:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14281,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1370:28:48"},"returnParameters":{"id":14285,"nodeType":"ParameterList","parameters":[],"src":"1422:0:48"},"scope":14323,"src":"1341:83:48","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4999],"body":{"id":14308,"nodeType":"Block","src":"1548:112:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14296,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14290,"src":"1565:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14298,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"1585:15:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":14297,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1580:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":14300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1602:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"1580:33:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1565:48:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14304,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14290,"src":"1641:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14302,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1617:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockNotificationTracker_$14323_$","typeString":"type(contract super MockNotificationTracker)"}},"id":14303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1623:17:48","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"1617:23:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1617:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1565:88:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14295,"id":14307,"nodeType":"Return","src":"1558:95:48"}]},"documentation":{"id":14288,"nodeType":"StructuredDocumentation","src":"1430:22:48","text":"@inheritdoc ERC165"},"functionSelector":"01ffc9a7","id":14309,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1466:17:48","nodeType":"FunctionDefinition","overrides":{"id":14292,"nodeType":"OverrideSpecifier","overrides":[],"src":"1524:8:48"},"parameters":{"id":14291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14290,"mutability":"mutable","name":"interfaceId","nameLocation":"1491:11:48","nodeType":"VariableDeclaration","scope":14309,"src":"1484:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14289,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1484:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1483:20:48"},"returnParameters":{"id":14295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14309,"src":"1542:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14293,"name":"bool","nodeType":"ElementaryTypeName","src":"1542:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1541:6:48"},"scope":14323,"src":"1457:203:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14321,"nodeType":"Block","src":"1780:73:48","statements":[{"expression":{"id":14315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14313,"name":"notificationCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14249,"src":"1790:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1810:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1790:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14316,"nodeType":"ExpressionStatement","src":"1790:21:48"},{"expression":{"id":14319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14317,"name":"lastNotificationBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14252,"src":"1821:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1845:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1821:25:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14320,"nodeType":"ExpressionStatement","src":"1821:25:48"}]},"documentation":{"id":14310,"nodeType":"StructuredDocumentation","src":"1666:66:48","text":"@notice Resets the notification counter and last block to zero"},"functionSelector":"cbe3fe62","id":14322,"implemented":true,"kind":"function","modifiers":[],"name":"resetNotificationCount","nameLocation":"1746:22:48","nodeType":"FunctionDefinition","parameters":{"id":14311,"nodeType":"ParameterList","parameters":[],"src":"1768:2:48"},"returnParameters":{"id":14312,"nodeType":"ParameterList","parameters":[],"src":"1780:0:48"},"scope":14323,"src":"1737:116:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":14324,"src":"446:1409:48","usedErrors":[],"usedEvents":[1617,1620,14259]}],"src":"32:1824:48"},"id":48},"project/contracts/test/allocate/MockReentrantTarget.sol":{"ast":{"absolutePath":"project/contracts/test/allocate/MockReentrantTarget.sol","exportedSymbols":{"ERC165":[5000],"IIssuanceAllocationAdministration":[1469],"IIssuanceAllocationDistribution":[1507],"IIssuanceTarget":[1631],"MockReentrantTarget":[14602]},"id":14603,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14325,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:49"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":14327,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14603,"sourceUnit":1632,"src":"58:108:49","symbolAliases":[{"foreign":{"id":14326,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"67:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationDistribution.sol","id":14329,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14603,"sourceUnit":1508,"src":"167:140:49","symbolAliases":[{"foreign":{"id":14328,"name":"IIssuanceAllocationDistribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"176:31:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceAllocationAdministration.sol","id":14331,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14603,"sourceUnit":1470,"src":"308:144:49","symbolAliases":[{"foreign":{"id":14330,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"317:33:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":14333,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14603,"sourceUnit":5001,"src":"453:80:49","symbolAliases":[{"foreign":{"id":14332,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5000,"src":"462:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14335,"name":"IIssuanceTarget","nameLocations":["778:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"778:15:49"},"id":14336,"nodeType":"InheritanceSpecifier","src":"778:15:49"},{"baseName":{"id":14337,"name":"ERC165","nameLocations":["795:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"795:6:49"},"id":14338,"nodeType":"InheritanceSpecifier","src":"795:6:49"}],"canonicalName":"MockReentrantTarget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14334,"nodeType":"StructuredDocumentation","src":"535:210:49","text":" @title MockReentrantTarget\n @author Edge & Node\n @notice A malicious mock contract that attempts reentrancy attacks for testing\n @dev Used for testing reentrancy protection in IssuanceAllocator"},"fullyImplemented":true,"id":14602,"linearizedBaseContracts":[14602,5000,5012,1631],"name":"MockReentrantTarget","nameLocation":"755:19:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":14339,"nodeType":"StructuredDocumentation","src":"808:67:49","text":"@notice The issuance allocator to target for reentrancy attacks"},"functionSelector":"c3e15de1","id":14341,"mutability":"mutable","name":"issuanceAllocator","nameLocation":"895:17:49","nodeType":"VariableDeclaration","scope":14602,"src":"880:32:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14340,"name":"address","nodeType":"ElementaryTypeName","src":"880:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":14342,"nodeType":"StructuredDocumentation","src":"918:55:49","text":"@notice The configured reentrancy action to perform"},"functionSelector":"feeeda79","id":14345,"mutability":"mutable","name":"actionToPerform","nameLocation":"1001:15:49","nodeType":"VariableDeclaration","scope":14602,"src":"978:38:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"typeName":{"id":14344,"nodeType":"UserDefinedTypeName","pathNode":{"id":14343,"name":"ReentrantAction","nameLocations":["978:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":14361,"src":"978:15:49"},"referencedDeclaration":14361,"src":"978:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"visibility":"public"},{"constant":false,"documentation":{"id":14346,"nodeType":"StructuredDocumentation","src":"1022:50:49","text":"@notice Whether reentrancy should be attempted"},"functionSelector":"e4679dd2","id":14348,"mutability":"mutable","name":"shouldAttemptReentrancy","nameLocation":"1089:23:49","nodeType":"VariableDeclaration","scope":14602,"src":"1077:35:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14347,"name":"bool","nodeType":"ElementaryTypeName","src":"1077:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"canonicalName":"MockReentrantTarget.ReentrantAction","id":14361,"members":[{"id":14349,"name":"None","nameLocation":"1150:4:49","nodeType":"EnumValue","src":"1150:4:49"},{"id":14350,"name":"DistributeIssuance","nameLocation":"1164:18:49","nodeType":"EnumValue","src":"1164:18:49"},{"id":14351,"name":"SetTargetAllocation1Param","nameLocation":"1192:25:49","nodeType":"EnumValue","src":"1192:25:49"},{"id":14352,"name":"SetTargetAllocation2Param","nameLocation":"1227:25:49","nodeType":"EnumValue","src":"1227:25:49"},{"id":14353,"name":"SetTargetAllocation3Param","nameLocation":"1262:25:49","nodeType":"EnumValue","src":"1262:25:49"},{"id":14354,"name":"SetIssuancePerBlock","nameLocation":"1297:19:49","nodeType":"EnumValue","src":"1297:19:49"},{"id":14355,"name":"SetIssuancePerBlock2Param","nameLocation":"1326:25:49","nodeType":"EnumValue","src":"1326:25:49"},{"id":14356,"name":"NotifyTarget","nameLocation":"1361:12:49","nodeType":"EnumValue","src":"1361:12:49"},{"id":14357,"name":"SetDefaultTarget1Param","nameLocation":"1383:22:49","nodeType":"EnumValue","src":"1383:22:49"},{"id":14358,"name":"SetDefaultTarget2Param","nameLocation":"1415:22:49","nodeType":"EnumValue","src":"1415:22:49"},{"id":14359,"name":"DistributePendingIssuance0Param","nameLocation":"1447:31:49","nodeType":"EnumValue","src":"1447:31:49"},{"id":14360,"name":"DistributePendingIssuance1Param","nameLocation":"1488:31:49","nodeType":"EnumValue","src":"1488:31:49"}],"name":"ReentrantAction","nameLocation":"1124:15:49","nodeType":"EnumDefinition","src":"1119:406:49"},{"body":{"id":14379,"nodeType":"Block","src":"1720:109:49","statements":[{"expression":{"id":14370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14368,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"1730:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14369,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14365,"src":"1748:7:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"1730:25:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"id":14371,"nodeType":"ExpressionStatement","src":"1730:25:49"},{"expression":{"id":14377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14372,"name":"shouldAttemptReentrancy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14348,"src":"1765:23:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14373,"name":"_action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14365,"src":"1791:7:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14374,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"1802:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1818:4:49","memberName":"None","nodeType":"MemberAccess","referencedDeclaration":14349,"src":"1802:20:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"1791:31:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1765:57:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14378,"nodeType":"ExpressionStatement","src":"1765:57:49"}]},"documentation":{"id":14362,"nodeType":"StructuredDocumentation","src":"1531:122:49","text":"@notice Sets the action to perform during reentrancy attempt\n @param _action The reentrancy action to configure"},"functionSelector":"368b381f","id":14380,"implemented":true,"kind":"function","modifiers":[],"name":"setReentrantAction","nameLocation":"1667:18:49","nodeType":"FunctionDefinition","parameters":{"id":14366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14365,"mutability":"mutable","name":"_action","nameLocation":"1702:7:49","nodeType":"VariableDeclaration","scope":14380,"src":"1686:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"typeName":{"id":14364,"nodeType":"UserDefinedTypeName","pathNode":{"id":14363,"name":"ReentrantAction","nameLocations":["1686:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":14361,"src":"1686:15:49"},"referencedDeclaration":14361,"src":"1686:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"visibility":"internal"}],"src":"1685:25:49"},"returnParameters":{"id":14367,"nodeType":"ParameterList","parameters":[],"src":"1720:0:49"},"scope":14602,"src":"1658:171:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1624],"body":{"id":14566,"nodeType":"Block","src":"1931:2372:49","statements":[{"condition":{"id":14386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1945:24:49","subExpression":{"id":14385,"name":"shouldAttemptReentrancy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14348,"src":"1946:23:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14388,"nodeType":"IfStatement","src":"1941:37:49","trueBody":{"functionReturnParameters":14384,"id":14387,"nodeType":"Return","src":"1971:7:49"}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14389,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"2049:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14390,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2068:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2084:18:49","memberName":"DistributeIssuance","nodeType":"MemberAccess","referencedDeclaration":14350,"src":"2068:34:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"2049:53:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14400,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"2210:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14401,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2229:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2245:25:49","memberName":"SetTargetAllocation1Param","nodeType":"MemberAccess","referencedDeclaration":14351,"src":"2229:41:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"2210:60:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14418,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"2463:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14419,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2482:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2498:25:49","memberName":"SetTargetAllocation2Param","nodeType":"MemberAccess","referencedDeclaration":14352,"src":"2482:41:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"2463:60:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14437,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"2735:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14438,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2754:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2770:25:49","memberName":"SetTargetAllocation3Param","nodeType":"MemberAccess","referencedDeclaration":14353,"src":"2754:41:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"2735:60:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14458,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3037:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14459,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3056:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3072:19:49","memberName":"SetIssuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":14354,"src":"3056:35:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3037:54:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14470,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3206:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14471,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3225:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3241:25:49","memberName":"SetIssuancePerBlock2Param","nodeType":"MemberAccess","referencedDeclaration":14355,"src":"3225:41:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3206:60:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14484,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3395:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14485,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3414:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3430:12:49","memberName":"NotifyTarget","nodeType":"MemberAccess","referencedDeclaration":14356,"src":"3414:28:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3395:47:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14499,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3559:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14500,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3578:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3594:22:49","memberName":"SetDefaultTarget1Param","nodeType":"MemberAccess","referencedDeclaration":14357,"src":"3578:38:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3559:57:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14514,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3737:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14515,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3756:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3772:22:49","memberName":"SetDefaultTarget2Param","nodeType":"MemberAccess","referencedDeclaration":14358,"src":"3756:38:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3737:57:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14531,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"3929:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14532,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"3948:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3964:31:49","memberName":"DistributePendingIssuance0Param","nodeType":"MemberAccess","referencedDeclaration":14359,"src":"3948:47:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"3929:66:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14542,"name":"actionToPerform","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"4112:15:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14543,"name":"ReentrantAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"4131:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ReentrantAction_$14361_$","typeString":"type(enum MockReentrantTarget.ReentrantAction)"}},"id":14544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4147:31:49","memberName":"DistributePendingIssuance1Param","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"4131:47:49","typeDescriptions":{"typeIdentifier":"t_enum$_ReentrantAction_$14361","typeString":"enum MockReentrantTarget.ReentrantAction"}},"src":"4112:66:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14555,"nodeType":"IfStatement","src":"4108:189:49","trueBody":{"id":14554,"nodeType":"Block","src":"4180:117:49","statements":[{"expression":{"arguments":[{"expression":{"id":14550,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4273:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4279:6:49","memberName":"number","nodeType":"MemberAccess","src":"4273:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14547,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"4228:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14546,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"4194:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4194:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4247:25:49","memberName":"distributePendingIssuance","nodeType":"MemberAccess","referencedDeclaration":1452,"src":"4194:78:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) external returns (uint256)"}},"id":14552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4194:92:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14553,"nodeType":"ExpressionStatement","src":"4194:92:49"}]}},"id":14556,"nodeType":"IfStatement","src":"3925:372:49","trueBody":{"id":14541,"nodeType":"Block","src":"3997:105:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":14536,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"4045:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14535,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"4011:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4011:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4064:25:49","memberName":"distributePendingIssuance","nodeType":"MemberAccess","referencedDeclaration":1444,"src":"4011:78:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_uint256_$","typeString":"function () external returns (uint256)"}},"id":14539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4011:80:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14540,"nodeType":"ExpressionStatement","src":"4011:80:49"}]}},"id":14557,"nodeType":"IfStatement","src":"3733:564:49","trueBody":{"id":14530,"nodeType":"Block","src":"3796:123:49","statements":[{"expression":{"arguments":[{"arguments":[{"id":14524,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3888:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3880:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14522,"name":"address","nodeType":"ElementaryTypeName","src":"3880:7:49","typeDescriptions":{}}},"id":14525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3880:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14526,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3895:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3901:6:49","memberName":"number","nodeType":"MemberAccess","src":"3895:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14519,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3844:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14518,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"3810:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3810:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3863:16:49","memberName":"setDefaultTarget","nodeType":"MemberAccess","referencedDeclaration":1438,"src":"3810:69:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":14528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3810:98:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14529,"nodeType":"ExpressionStatement","src":"3810:98:49"}]}},"id":14558,"nodeType":"IfStatement","src":"3555:742:49","trueBody":{"id":14513,"nodeType":"Block","src":"3618:109:49","statements":[{"expression":{"arguments":[{"arguments":[{"id":14509,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3710:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3702:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14507,"name":"address","nodeType":"ElementaryTypeName","src":"3702:7:49","typeDescriptions":{}}},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3702:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":14504,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3666:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14503,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"3632:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3685:16:49","memberName":"setDefaultTarget","nodeType":"MemberAccess","referencedDeclaration":1428,"src":"3632:69:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":14511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:84:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14512,"nodeType":"ExpressionStatement","src":"3632:84:49"}]}},"id":14559,"nodeType":"IfStatement","src":"3391:906:49","trueBody":{"id":14498,"nodeType":"Block","src":"3444:105:49","statements":[{"expression":{"arguments":[{"arguments":[{"id":14494,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3532:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3524:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14492,"name":"address","nodeType":"ElementaryTypeName","src":"3524:7:49","typeDescriptions":{}}},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3524:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":14489,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3492:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14488,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"3458:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3511:12:49","memberName":"notifyTarget","nodeType":"MemberAccess","referencedDeclaration":1410,"src":"3458:65:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":14496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:80:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14497,"nodeType":"ExpressionStatement","src":"3458:80:49"}]}},"id":14560,"nodeType":"IfStatement","src":"3202:1095:49","trueBody":{"id":14483,"nodeType":"Block","src":"3268:117:49","statements":[{"expression":{"arguments":[{"hexValue":"31303030","id":14478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3355:4:49","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},{"expression":{"id":14479,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3361:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3367:6:49","memberName":"number","nodeType":"MemberAccess","src":"3361:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14475,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3316:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14474,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"3282:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3335:19:49","memberName":"setIssuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":1363,"src":"3282:72:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) external returns (bool)"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:92:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14482,"nodeType":"ExpressionStatement","src":"3282:92:49"}]}},"id":14561,"nodeType":"IfStatement","src":"3033:1264:49","trueBody":{"id":14469,"nodeType":"Block","src":"3093:103:49","statements":[{"expression":{"arguments":[{"hexValue":"31303030","id":14466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3180:4:49","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"arguments":[{"id":14463,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3141:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14462,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"3107:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:19:49","memberName":"setIssuancePerBlock","nodeType":"MemberAccess","referencedDeclaration":1353,"src":"3107:72:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":14467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:78:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14468,"nodeType":"ExpressionStatement","src":"3107:78:49"}]}},"id":14562,"nodeType":"IfStatement","src":"2731:1566:49","trueBody":{"id":14457,"nodeType":"Block","src":"2797:230:49","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14448,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2925:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2917:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14446,"name":"address","nodeType":"ElementaryTypeName","src":"2917:7:49","typeDescriptions":{}}},"id":14449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2917:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14445,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"2901:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":14450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},{"hexValue":"31303030","id":14451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2949:4:49","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},{"hexValue":"30","id":14452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2971:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":14453,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2990:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:49","memberName":"number","nodeType":"MemberAccess","src":"2990:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14442,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2845:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14441,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"2811:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2864:19:49","memberName":"setTargetAllocation","nodeType":"MemberAccess","referencedDeclaration":1402,"src":"2811:72:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IIssuanceTarget_$1631_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IIssuanceTarget,uint256,uint256,uint256) external returns (bool)"}},"id":14455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2811:205:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14456,"nodeType":"ExpressionStatement","src":"2811:205:49"}]}},"id":14563,"nodeType":"IfStatement","src":"2459:1838:49","trueBody":{"id":14436,"nodeType":"Block","src":"2525:200:49","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14429,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2653:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2645:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14427,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:49","typeDescriptions":{}}},"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14426,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"2629:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":14431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},{"hexValue":"31303030","id":14432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2677:4:49","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},{"hexValue":"30","id":14433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2699:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":14423,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2573:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14422,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"2539:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:19:49","memberName":"setTargetAllocation","nodeType":"MemberAccess","referencedDeclaration":1387,"src":"2539:72:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IIssuanceTarget_$1631_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IIssuanceTarget,uint256,uint256) external returns (bool)"}},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:175:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14435,"nodeType":"ExpressionStatement","src":"2539:175:49"}]}},"id":14564,"nodeType":"IfStatement","src":"2206:2091:49","trueBody":{"id":14417,"nodeType":"Block","src":"2272:181:49","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14411,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2400:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockReentrantTarget_$14602","typeString":"contract MockReentrantTarget"}],"id":14410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2392:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14409,"name":"address","nodeType":"ElementaryTypeName","src":"2392:7:49","typeDescriptions":{}}},"id":14412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2392:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14408,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"2376:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}},"id":14413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:30:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"}},{"hexValue":"31303030","id":14414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2424:4:49","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IIssuanceTarget_$1631","typeString":"contract IIssuanceTarget"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"arguments":[{"id":14405,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2320:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14404,"name":"IIssuanceAllocationAdministration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"2286:33:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationAdministration_$1469_$","typeString":"type(contract IIssuanceAllocationAdministration)"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationAdministration_$1469","typeString":"contract IIssuanceAllocationAdministration"}},"id":14407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2339:19:49","memberName":"setTargetAllocation","nodeType":"MemberAccess","referencedDeclaration":1374,"src":"2286:72:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IIssuanceTarget_$1631_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IIssuanceTarget,uint256) external returns (bool)"}},"id":14415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:156:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14416,"nodeType":"ExpressionStatement","src":"2286:156:49"}]}},"id":14565,"nodeType":"IfStatement","src":"2045:2252:49","trueBody":{"id":14399,"nodeType":"Block","src":"2104:96:49","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":14394,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"2150:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14393,"name":"IIssuanceAllocationDistribution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"2118:31:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceAllocationDistribution_$1507_$","typeString":"type(contract IIssuanceAllocationDistribution)"}},"id":14395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:50:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IIssuanceAllocationDistribution_$1507","typeString":"contract IIssuanceAllocationDistribution"}},"id":14396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2169:18:49","memberName":"distributeIssuance","nodeType":"MemberAccess","referencedDeclaration":1497,"src":"2118:69:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_uint256_$","typeString":"function () external returns (uint256)"}},"id":14397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14398,"nodeType":"ExpressionStatement","src":"2118:71:49"}]}}]},"documentation":{"id":14381,"nodeType":"StructuredDocumentation","src":"1835:31:49","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":14567,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"1880:30:49","nodeType":"FunctionDefinition","overrides":{"id":14383,"nodeType":"OverrideSpecifier","overrides":[],"src":"1922:8:49"},"parameters":{"id":14382,"nodeType":"ParameterList","parameters":[],"src":"1910:2:49"},"returnParameters":{"id":14384,"nodeType":"ParameterList","parameters":[],"src":"1931:0:49"},"scope":14602,"src":"1871:2432:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":14578,"nodeType":"Block","src":"4421:55:49","statements":[{"expression":{"id":14576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14574,"name":"issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"4431:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14575,"name":"_issuanceAllocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14570,"src":"4451:18:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4431:38:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14577,"nodeType":"ExpressionStatement","src":"4431:38:49"}]},"documentation":{"id":14568,"nodeType":"StructuredDocumentation","src":"4309:31:49","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"931c0ac1","id":14579,"implemented":true,"kind":"function","modifiers":[],"name":"setIssuanceAllocator","nameLocation":"4354:20:49","nodeType":"FunctionDefinition","overrides":{"id":14572,"nodeType":"OverrideSpecifier","overrides":[],"src":"4412:8:49"},"parameters":{"id":14571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14570,"mutability":"mutable","name":"_issuanceAllocator","nameLocation":"4383:18:49","nodeType":"VariableDeclaration","scope":14579,"src":"4375:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14569,"name":"address","nodeType":"ElementaryTypeName","src":"4375:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4374:28:49"},"returnParameters":{"id":14573,"nodeType":"ParameterList","parameters":[],"src":"4421:0:49"},"scope":14602,"src":"4345:131:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4999],"body":{"id":14600,"nodeType":"Block","src":"4600:112:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14588,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"4617:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14590,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"4637:15:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":14589,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4632:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4632:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":14592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4654:11:49","memberName":"interfaceId","nodeType":"MemberAccess","src":"4632:33:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4617:48:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14596,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"4693:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14594,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4669:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockReentrantTarget_$14602_$","typeString":"type(contract super MockReentrantTarget)"}},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4675:17:49","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"4669:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4669:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4617:88:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14587,"id":14599,"nodeType":"Return","src":"4610:95:49"}]},"documentation":{"id":14580,"nodeType":"StructuredDocumentation","src":"4482:22:49","text":"@inheritdoc ERC165"},"functionSelector":"01ffc9a7","id":14601,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4518:17:49","nodeType":"FunctionDefinition","overrides":{"id":14584,"nodeType":"OverrideSpecifier","overrides":[],"src":"4576:8:49"},"parameters":{"id":14583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14582,"mutability":"mutable","name":"interfaceId","nameLocation":"4543:11:49","nodeType":"VariableDeclaration","scope":14601,"src":"4536:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14581,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4536:6:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4535:20:49"},"returnParameters":{"id":14587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14601,"src":"4594:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14585,"name":"bool","nodeType":"ElementaryTypeName","src":"4594:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4593:6:49"},"scope":14602,"src":"4509:203:49","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14603,"src":"746:3968:49","usedErrors":[],"usedEvents":[1617,1620]}],"src":"32:4683:49"},"id":49},"project/contracts/test/allocate/MockRevertingTarget.sol":{"ast":{"absolutePath":"project/contracts/test/allocate/MockRevertingTarget.sol","exportedSymbols":{"ERC165":[5000],"IIssuanceTarget":[1631],"MockRevertingTarget":[14656]},"id":14657,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14604,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:50"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":14606,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14657,"sourceUnit":1632,"src":"58:108:50","symbolAliases":[{"foreign":{"id":14605,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"67:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":14608,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14657,"sourceUnit":5001,"src":"167:80:50","symbolAliases":[{"foreign":{"id":14607,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5000,"src":"176:6:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14610,"name":"IIssuanceTarget","nameLocations":["489:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"489:15:50"},"id":14611,"nodeType":"InheritanceSpecifier","src":"489:15:50"},{"baseName":{"id":14612,"name":"ERC165","nameLocations":["506:6:50"],"nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"506:6:50"},"id":14613,"nodeType":"InheritanceSpecifier","src":"506:6:50"}],"canonicalName":"MockRevertingTarget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14609,"nodeType":"StructuredDocumentation","src":"249:207:50","text":" @title MockRevertingTarget\n @author Edge & Node\n @notice A mock contract that reverts when beforeIssuanceAllocationChange is called\n @dev Used for testing error handling in IssuanceAllocator"},"fullyImplemented":true,"id":14656,"linearizedBaseContracts":[14656,5000,5012,1631],"name":"MockRevertingTarget","nameLocation":"466:19:50","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":14614,"nodeType":"StructuredDocumentation","src":"519:62:50","text":"@notice Error thrown when the target reverts intentionally"},"errorSelector":"6af64104","id":14616,"name":"TargetRevertsIntentionally","nameLocation":"592:26:50","nodeType":"ErrorDefinition","parameters":{"id":14615,"nodeType":"ParameterList","parameters":[],"src":"618:2:50"},"src":"586:35:50"},{"baseFunctions":[1624],"body":{"id":14624,"nodeType":"Block","src":"742:52:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14621,"name":"TargetRevertsIntentionally","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14616,"src":"759:26:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14623,"nodeType":"RevertStatement","src":"752:35:50"}]},"documentation":{"id":14617,"nodeType":"StructuredDocumentation","src":"626:46:50","text":" @inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":14625,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"686:30:50","nodeType":"FunctionDefinition","overrides":{"id":14619,"nodeType":"OverrideSpecifier","overrides":[],"src":"733:8:50"},"parameters":{"id":14618,"nodeType":"ParameterList","parameters":[],"src":"716:2:50"},"returnParameters":{"id":14620,"nodeType":"ParameterList","parameters":[],"src":"742:0:50"},"scope":14656,"src":"677:117:50","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":14632,"nodeType":"Block","src":"932:24:50","statements":[]},"documentation":{"id":14626,"nodeType":"StructuredDocumentation","src":"800:46:50","text":" @inheritdoc IIssuanceTarget"},"functionSelector":"931c0ac1","id":14633,"implemented":true,"kind":"function","modifiers":[],"name":"setIssuanceAllocator","nameLocation":"860:20:50","nodeType":"FunctionDefinition","overrides":{"id":14630,"nodeType":"OverrideSpecifier","overrides":[],"src":"923:8:50"},"parameters":{"id":14629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14628,"mutability":"mutable","name":"_issuanceAllocator","nameLocation":"889:18:50","nodeType":"VariableDeclaration","scope":14633,"src":"881:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14627,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"880:28:50"},"returnParameters":{"id":14631,"nodeType":"ParameterList","parameters":[],"src":"932:0:50"},"scope":14656,"src":"851:105:50","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4999],"body":{"id":14654,"nodeType":"Block","src":"1080:112:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14642,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14636,"src":"1097:11:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14644,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"1117:15:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":14643,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1112:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1112:21:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":14646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1134:11:50","memberName":"interfaceId","nodeType":"MemberAccess","src":"1112:33:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1097:48:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14650,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14636,"src":"1173:11:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14648,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1149:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockRevertingTarget_$14656_$","typeString":"type(contract super MockRevertingTarget)"}},"id":14649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1155:17:50","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"1149:23:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:36:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1097:88:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14641,"id":14653,"nodeType":"Return","src":"1090:95:50"}]},"documentation":{"id":14634,"nodeType":"StructuredDocumentation","src":"962:22:50","text":"@inheritdoc ERC165"},"functionSelector":"01ffc9a7","id":14655,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"998:17:50","nodeType":"FunctionDefinition","overrides":{"id":14638,"nodeType":"OverrideSpecifier","overrides":[],"src":"1056:8:50"},"parameters":{"id":14637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14636,"mutability":"mutable","name":"interfaceId","nameLocation":"1023:11:50","nodeType":"VariableDeclaration","scope":14655,"src":"1016:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14635,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1016:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1015:20:50"},"returnParameters":{"id":14641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14655,"src":"1074:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14639,"name":"bool","nodeType":"ElementaryTypeName","src":"1074:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1073:6:50"},"scope":14656,"src":"989:203:50","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14657,"src":"457:737:50","usedErrors":[14616],"usedEvents":[1617,1620]}],"src":"32:1163:50"},"id":50},"project/contracts/test/allocate/MockSimpleTarget.sol":{"ast":{"absolutePath":"project/contracts/test/allocate/MockSimpleTarget.sol","exportedSymbols":{"ERC165":[5000],"IIssuanceTarget":[1631],"MockSimpleTarget":[14704]},"id":14705,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14658,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:51"},{"absolutePath":"npm/@graphprotocol/interfaces@local/contracts/issuance/allocate/IIssuanceTarget.sol","file":"@graphprotocol/interfaces/contracts/issuance/allocate/IIssuanceTarget.sol","id":14660,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14705,"sourceUnit":1632,"src":"58:108:51","symbolAliases":[{"foreign":{"id":14659,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"67:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"npm/@openzeppelin/contracts@5.4.0/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":14662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14705,"sourceUnit":5001,"src":"167:80:51","symbolAliases":[{"foreign":{"id":14661,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5000,"src":"176:6:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14664,"name":"IIssuanceTarget","nameLocations":["480:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":1631,"src":"480:15:51"},"id":14665,"nodeType":"InheritanceSpecifier","src":"480:15:51"},{"baseName":{"id":14666,"name":"ERC165","nameLocations":["497:6:51"],"nodeType":"IdentifierPath","referencedDeclaration":5000,"src":"497:6:51"},"id":14667,"nodeType":"InheritanceSpecifier","src":"497:6:51"}],"canonicalName":"MockSimpleTarget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14663,"nodeType":"StructuredDocumentation","src":"249:201:51","text":" @title MockSimpleTarget\n @author Edge & Node\n @notice A simple mock contract that implements IIssuanceTarget for testing\n @dev Used for testing basic functionality in IssuanceAllocator"},"fullyImplemented":true,"id":14704,"linearizedBaseContracts":[14704,5000,5012,1631],"name":"MockSimpleTarget","nameLocation":"460:16:51","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[1624],"body":{"id":14672,"nodeType":"Block","src":"611:2:51","statements":[]},"documentation":{"id":14668,"nodeType":"StructuredDocumentation","src":"510:31:51","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"3df8d682","id":14673,"implemented":true,"kind":"function","modifiers":[],"name":"beforeIssuanceAllocationChange","nameLocation":"555:30:51","nodeType":"FunctionDefinition","overrides":{"id":14670,"nodeType":"OverrideSpecifier","overrides":[],"src":"602:8:51"},"parameters":{"id":14669,"nodeType":"ParameterList","parameters":[],"src":"585:2:51"},"returnParameters":{"id":14671,"nodeType":"ParameterList","parameters":[],"src":"611:0:51"},"scope":14704,"src":"546:67:51","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1630],"body":{"id":14680,"nodeType":"Block","src":"736:2:51","statements":[]},"documentation":{"id":14674,"nodeType":"StructuredDocumentation","src":"619:31:51","text":"@inheritdoc IIssuanceTarget"},"functionSelector":"931c0ac1","id":14681,"implemented":true,"kind":"function","modifiers":[],"name":"setIssuanceAllocator","nameLocation":"664:20:51","nodeType":"FunctionDefinition","overrides":{"id":14678,"nodeType":"OverrideSpecifier","overrides":[],"src":"727:8:51"},"parameters":{"id":14677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14676,"mutability":"mutable","name":"_issuanceAllocator","nameLocation":"693:18:51","nodeType":"VariableDeclaration","scope":14681,"src":"685:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14675,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"684:28:51"},"returnParameters":{"id":14679,"nodeType":"ParameterList","parameters":[],"src":"736:0:51"},"scope":14704,"src":"655:83:51","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[4999],"body":{"id":14702,"nodeType":"Block","src":"862:112:51","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14690,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14684,"src":"879:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14692,"name":"IIssuanceTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"899:15:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IIssuanceTarget_$1631_$","typeString":"type(contract IIssuanceTarget)"}],"id":14691,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"894:4:51","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"894:21:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IIssuanceTarget_$1631","typeString":"type(contract IIssuanceTarget)"}},"id":14694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"916:11:51","memberName":"interfaceId","nodeType":"MemberAccess","src":"894:33:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"879:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14698,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14684,"src":"955:11:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14696,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"931:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockSimpleTarget_$14704_$","typeString":"type(contract super MockSimpleTarget)"}},"id":14697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"937:17:51","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":4999,"src":"931:23:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"931:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"879:88:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14689,"id":14701,"nodeType":"Return","src":"872:95:51"}]},"documentation":{"id":14682,"nodeType":"StructuredDocumentation","src":"744:22:51","text":"@inheritdoc ERC165"},"functionSelector":"01ffc9a7","id":14703,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"780:17:51","nodeType":"FunctionDefinition","overrides":{"id":14686,"nodeType":"OverrideSpecifier","overrides":[],"src":"838:8:51"},"parameters":{"id":14685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14684,"mutability":"mutable","name":"interfaceId","nameLocation":"805:11:51","nodeType":"VariableDeclaration","scope":14703,"src":"798:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14683,"name":"bytes4","nodeType":"ElementaryTypeName","src":"798:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"797:20:51"},"returnParameters":{"id":14689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14703,"src":"856:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14687,"name":"bool","nodeType":"ElementaryTypeName","src":"856:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"855:6:51"},"scope":14704,"src":"771:203:51","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":14705,"src":"451:525:51","usedErrors":[],"usedEvents":[1617,1620]}],"src":"32:945:51"},"id":51}}}}